【ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序】

服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。


 

取得数据库目前的进程数

select count(*) from v$process;

取得进程数的上限

select value from v$parameter where name = 'processes';

 


1、查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常接近

conn / as sysdba
select count(*) from v$session;
show parameter processes

 


2、修改processes和sessions值

alter system set processes=1000 scope=spfile;
alter system set sessions=1105 scope=spfile;

注意一下processes的值和sessions的值,Oracle官方文档中要求:

sessions=processes*1.5+5

也就是说sessions的值是根据processes的值计算后得到的

3、查看processes和sessions参数,但更改并未生效

show parameter processes

4、重启数据库,使更改生效

 

原文地址:https://www.cnblogs.com/pipi-changing/p/10419731.html