首页 > 数据库

oracle共享服务器配置(ora-12523 tns 监听程序未找到适用于客户机连接的例程)

时间:2009-04-16 20:21:21  作者:冰刀  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
author:skatetime:2009/04/14配置共享模式: 找到初始化文件pfile,然后对其编辑或加入如下内容: max_shared_servers =39#数据库支持的最大的服务进程数shared_se......

)
(CONNECT_DATA =
(SERVER = SHARED)

(SID=ORCL)
)
)


在连接 ,就ok了


如果遇到报错 ora-12520: tns 监听程序无法找到需要的服务器类型的可用句柄

那说明你的共享服务器配置错误,你的服务器还是专有服务器模式,而你的客户端正
视图用共享连接你的数据库(server=shared),解决方法是:


1.更改客户端的tnsnames.ora为专有模式(server=dedicated)
2.把服务器配置成共享模式数据库


如要把数据库配置成专有模式,要让如下参数都等于0

shared_servers=0


但我改完之后还可以用共享模式连接,只要我的客户端tnsnames配置如下:

245 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)

(SID=ORCL)
)
)

但是如果客户端的tnsnames如果改为


245 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = orcl)

)
)

就只能以专有模式连接

在改为专有模式时,很可能遇到ORA-12519错误。这个错误是因为客户端指定的SID
与dedicated server handler匹配不上,这就需要用LOCAL_LISTENER参数来指定服务名

服务器的tnsname文件如下:

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.245)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = ORCL)
)
)

那么就需要执行
SQL> alter system set local_listener='orcl' scope=both;

System altered.

现在你的客户端又可以正常连接了,以DEDICATED SERVER模式

注意:如果dispatchers中指定service, 那么在客户端默认连接是dedicate连接,
如果不指定service,则是是shared server

alter system set dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)';

查看你的服务器目前的连接是否是共享连接

select * from v$dispatcher
select * from v$shared_server
select * from v$shared_server_monitor
select count(*) from v$dispatcher;

如果您需转载 oracle共享服务器配置(ora-12523 tns 监听程序未找到适用于客户机连接的例程),请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门