看到资料上介绍说:共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。请问是否专用服务器连接方式下,不启动TNS也能连接数据库正常操作?可能有点搞混的地方,TNS和Net是不是同一个概念?如何查看数据库目前是配置为专用服务器连接还是共享服务器连接方式下?如何从专用服务器连接修改为共享服务器连接,反之如何从共享服务器连接修改为专用服务器连接?

解决方案 »

  1.   

    http://blog.csdn.net/wh62592855/archive/2009/09/28/4604903.aspx楼主好像对两者的概念不太清楚可以先看下上面的文章 
    有问题再问吧
      

  2.   

    1。无论在本地还是远程,都需要启动tns才可以连接数据库。
    2。在客户端的tnsnames.ora文件中指定dedicated模式.
      

  3.   

    看到资料上介绍说:共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 那么这段话如何理解呢--如果不使用Oracle TNS监听器,就无法使用共享服务器。换句话是说,如果不使用Oracle TNS监听器,也能使用服务器连接??
      

  4.   

    那这段话如何理解呢?
    "共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 "
      

  5.   

    Oracle Net是一种体系结构,用于将客户端和服务端分开.
    在专用服务器连接模式下,客户和服务器都在同一台机器上时,使用
    connect sys/sys as sysdba这种不通过TNSNAME连接的方式就是本地登录,即使监听器停了也能登录。
    connect sys/sys@TNSNAME as sysdba这种方式在监听器停了的情况下就不能登录。"共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 "
    意思是不是就是指不能使用本地登录方式,只能使用TNS登录啊。
    个人理解哈。
      

  6.   


    暂同你的说法,想做个测试--在专用服务器/共享服务器时,分别使用带或者不带TNSNAME连接的方式登录试试.但有点问题--不知道如何将数据库在专用服务器/共享服务器之间进行转换.
      

  7.   


    tns是和监听有关的,所以如果是要从不同的机器上登录,需要启动服务器上的监听,这样通过tcp/ip连接服务器,这也是tns里描述的连接描述。如果是从本机登录的话,如果启动了本地认证模式,不通过tns连接描述而直接连接本地服务器。和共享服务器是两个不同的概念。
      

  8.   


    测试: 1、共享模式
    $ sqlplus / as sysdba
    SQL> alter system set shared_servers=1;
    $ lsnrctl start
    $ sqlplus / as sysdba
    #成功
    $ sqlplus sys/[email protected]/orcl
    #成功
    $ lsnrctl stop
    $ sqlplus / as sysdba
    #成功
    $ sqlplus sys/[email protected]/orcl
    #失败2、专用模式
    $ lsnrctl start
    $ sqlplus / as sysdba
    SQL> alter system set shared_servers=0;
    $ sqlplus / as sysdba
    #成功
    $ sqlplus sys/[email protected]/orcl
    #成功
    $ lsnrctl stop
    $ sqlplus / as sysdba
    #成功
    $ sqlplus sys/[email protected]/orcl
    #失败从上面的测试来看,不论共享模式还是专用模式,对于登陆都没有关联;
    本机登陆,总是可以使用sqlplus / as sysdba;这样的简写方式,而使用ip(主机)登陆的方式则必需先启动监听。请各位指正上面这个测试和结论是否正确!!另外,以上的测试,还是让我对“共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。”这句话不理解!!
    按这句话的意思,数据库实例运行在共享模式时,即使本机,也需要使用TNS监听器。请各位指点!!
      

  9.   


    那么,为何我上面的测试中,使用也能本地登陆呢?请看1、共享模式 
    $ sqlplus / as sysdba 
    SQL> alter system set shared_servers=1; 
    $ lsnrctl start 
    $ sqlplus / as sysdba 
    #成功 
    $ sqlplus sys/[email protected]/orcl 
    #成功 
    $ lsnrctl stop 
    $ sqlplus / as sysdba 
    #成功 
      

  10.   

    要查看数据库服务器是属于哪种模式可以用以下命令
    sqlpus /nolog
    conn /as sysdba
    select server from v$session;
    如果查询结果都为
    DEDICATED 则为专用模式
    如果查询结果中存在NONE 则为共享模式运行
    也还有其他验证方法
    要将模式相互转换的话可以对以下三个参数进行修改,也就是重建参数文件
    dispatcher参数设为空或者注释掉 
    shared_servers=0 
    max_shared_servers=0 
    上面的是专用模式下的参数值
      

  11.   

    shared_servers是动态参数,其他两个参数不是共享模式必需,直接
    alter system set shared_servers=10 scope=both;
    可以了吧
      

  12.   

    那么这个现象如何解释?测试: 1、共享模式 
    $ sqlplus / as sysdba 
    SQL> alter system set shared_servers=1; 
    $ lsnrctl start 
    $ sqlplus / as sysdba 
    #成功 
    $ sqlplus sys/[email protected]/orcl 
    #成功 
    $ lsnrctl stop 
    $ sqlplus / as sysdba 
    #成功 
    $ sqlplus sys/[email protected]/orcl 
    #失败 2、专用模式 
    $ lsnrctl start 
    $ sqlplus / as sysdba 
    SQL> alter system set shared_servers=0; 
    $ sqlplus / as sysdba 
    #成功 
    $ sqlplus sys/[email protected]/orcl 
    #成功 
    $ lsnrctl stop 
    $ sqlplus / as sysdba 
    #成功 
    $ sqlplus sys/[email protected]/orcl 
    #失败 从上面的测试来看,不论共享模式还是专用模式,对于登陆都没有关联; 
    本机登陆,总是可以使用sqlplus / as sysdba;这样的简写方式,而使用ip(主机)登陆的方式则必需先启动监听。