服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误
根本原因就是Oracle的process和session已经达到了甚至超过了最大值,解决办法如下:
查看process和session的参数和占用值:
select value from v$parameter where name = 'processes'; 取得进程数的上限。
select count(*) from v$process;取得数据库目前的进程数。
select count(*) from v$session;
需要修改process和session的最大值即可
alter system set processes=1000 scope=spfile;
alter system set sessions=1105 scope=spfile;
processes的值和sessions的值,Oracle官方文档中要求:
sessions=processes*1.5+5
重启Oracle服务器即可。