重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2936|回复: 0
打印 上一主题 下一主题

[转载] ORA-12516: TNS:TNS: 监听程序无法找到匹配协议栈的可用句柄

[复制链接]
跳转到指定楼层
楼主
发表于 2016-10-17 10:38:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用PL/SQL Developer 数据库远程客户端连接程序连接数据库:
错误信息:
ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄.
TNS-12516 TNS:listener could not find available handler with matching protocol stack

导致原因可能为:
1.一般是由于数据库的当前会话数不满足造成的,相关的参数有两个:processes和sessions
(1)首先查看当前这两个参数的值
sql>conn / as sysdba
sql>select count(*) from v$session;  从这里可以看出当前的session数
sql>show parameter processes;    从输出的信息可以看到当前数据库中参数processes的值
sql>show parameter sessions;     从输出的信息可以看到当前数据库中参数sessions的值
这二者的关系是:sessions=(1.1*processes+5)
(2)修改这两个参数
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
(3)重新启动数据库服务,使这两个参数生效。
(4)如果数据库服务无法正常启动,则可能是solaris10系统参数seminfo_semmns设置的偏小,因为每个process会占用一个semmns,semmns调整后需要重新启动操作系统。
semmns的计算公式为:   SEMMNS>processes+instance_processes+system
processes=数据库参数processes的值   instance_processes=5(smon,pmon,dbwr,lgwr,arch)

2.可能是tnsnames.ora文件中的配置的 "SERVICE_NAME ="和 对应值(数据库名称) 中间多了个空格,需要去掉 之间的空格,好像有没有空格没有影响,已验证(可能有时候是这样引发ORA-12516)

3.如果做以上操作仍无法排除ORA-12516 ,需要做最后尝试 :单独重启启动 databasenameSeverice (databasename:是要连接目标数据库而引发ORA-12516 错误的目标数据库名称)
已尝试:有效

(4) listener.log日志太大引发的,listener.log日志记录了通过listener处理的网络请求信息,它包含客户端请求的时间,连接方式(专用或共享),连接程序,网络协议,主机名,网络端口号等信息,listener.log的文件内容没有太大意义,可以不让listener写日志。
操作时:#在listener.ora文件最后加入一行: logging_listener=off
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 14:42 , Processed in 0.081819 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表