标题: ORA-12516: TNS:TNS: 监听程序无法找到匹配协议栈的可用句柄 [打印本页] 作者: 郑全 时间: 2016-10-17 10:38 标题: ORA-12516: TNS:TNS: 监听程序无法找到匹配协议栈的可用句柄 使用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)