专用服务器和共享服务器的疑问 看到资料上介绍说:共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。请问是否专用服务器连接方式下,不启动TNS也能连接数据库正常操作?可能有点搞混的地方,TNS和Net是不是同一个概念?如何查看数据库目前是配置为专用服务器连接还是共享服务器连接方式下?如何从专用服务器连接修改为共享服务器连接,反之如何从共享服务器连接修改为专用服务器连接? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/wh62592855/archive/2009/09/28/4604903.aspx楼主好像对两者的概念不太清楚可以先看下上面的文章 有问题再问吧 1。无论在本地还是远程,都需要启动tns才可以连接数据库。2。在客户端的tnsnames.ora文件中指定dedicated模式. 看到资料上介绍说:共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 那么这段话如何理解呢--如果不使用Oracle TNS监听器,就无法使用共享服务器。换句话是说,如果不使用Oracle TNS监听器,也能使用服务器连接?? 那这段话如何理解呢?"共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 " Oracle Net是一种体系结构,用于将客户端和服务端分开.在专用服务器连接模式下,客户和服务器都在同一台机器上时,使用connect sys/sys as sysdba这种不通过TNSNAME连接的方式就是本地登录,即使监听器停了也能登录。connect sys/sys@TNSNAME as sysdba这种方式在监听器停了的情况下就不能登录。"共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 "意思是不是就是指不能使用本地登录方式,只能使用TNS登录啊。个人理解哈。 暂同你的说法,想做个测试--在专用服务器/共享服务器时,分别使用带或者不带TNSNAME连接的方式登录试试.但有点问题--不知道如何将数据库在专用服务器/共享服务器之间进行转换. tns是和监听有关的,所以如果是要从不同的机器上登录,需要启动服务器上的监听,这样通过tcp/ip连接服务器,这也是tns里描述的连接描述。如果是从本机登录的话,如果启动了本地认证模式,不通过tns连接描述而直接连接本地服务器。和共享服务器是两个不同的概念。 测试: 1、共享模式$ sqlplus / as sysdbaSQL> 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 sysdbaSQL> 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监听器。请各位指点!! 那么,为何我上面的测试中,使用也能本地登陆呢?请看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 #成功 要查看数据库服务器是属于哪种模式可以用以下命令sqlpus /nologconn /as sysdbaselect server from v$session;如果查询结果都为DEDICATED 则为专用模式如果查询结果中存在NONE 则为共享模式运行也还有其他验证方法要将模式相互转换的话可以对以下三个参数进行修改,也就是重建参数文件dispatcher参数设为空或者注释掉 shared_servers=0 max_shared_servers=0 上面的是专用模式下的参数值 shared_servers是动态参数,其他两个参数不是共享模式必需,直接alter system set shared_servers=10 scope=both;可以了吧 那么这个现象如何解释?测试: 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(主机)登陆的方式则必需先启动监听。 求大牛们来帮帮忙!测试after触发器的时候出错oracle触发器行级的问题!!!万分感谢 plsql变量对象名已存在怎么办? oracle9i 游标返回结果集 请高手指点select count(*)的问题 50分,怎么求积,就象sum(字段)求和一样 取一个月中的某一天(星期几)?焦急!各位帮帮忙,谢谢了先! 在oracle中,如何按照集合中的字段值顺序排序查询结果 创建视图时遇到ORA-933错误,SQL命令未正确结束 UTL_FILE 使用出错 X鸟问题,关于巨型记录集的操作 能否有朋友将11g系统自身的定时计划解释一下? 查询语句检索问题
有问题再问吧
2。在客户端的tnsnames.ora文件中指定dedicated模式.
"共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 "
在专用服务器连接模式下,客户和服务器都在同一台机器上时,使用
connect sys/sys as sysdba这种不通过TNSNAME连接的方式就是本地登录,即使监听器停了也能登录。
connect sys/sys@TNSNAME as sysdba这种方式在监听器停了的情况下就不能登录。"共享服务器连接强制使用Oracle Net,即使客户和服务器都在同一台机器上也不例外。如果不使用Oracle TNS监听器,就无法使用共享服务器。 "
意思是不是就是指不能使用本地登录方式,只能使用TNS登录啊。
个人理解哈。
暂同你的说法,想做个测试--在专用服务器/共享服务器时,分别使用带或者不带TNSNAME连接的方式登录试试.但有点问题--不知道如何将数据库在专用服务器/共享服务器之间进行转换.
tns是和监听有关的,所以如果是要从不同的机器上登录,需要启动服务器上的监听,这样通过tcp/ip连接服务器,这也是tns里描述的连接描述。如果是从本机登录的话,如果启动了本地认证模式,不通过tns连接描述而直接连接本地服务器。和共享服务器是两个不同的概念。
测试: 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监听器。请各位指点!!
那么,为何我上面的测试中,使用也能本地登陆呢?请看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
#成功
sqlpus /nolog
conn /as sysdba
select server from v$session;
如果查询结果都为
DEDICATED 则为专用模式
如果查询结果中存在NONE 则为共享模式运行
也还有其他验证方法
要将模式相互转换的话可以对以下三个参数进行修改,也就是重建参数文件
dispatcher参数设为空或者注释掉
shared_servers=0
max_shared_servers=0
上面的是专用模式下的参数值
alter system set shared_servers=10 scope=both;
可以了吧
$ 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(主机)登陆的方式则必需先启动监听。