错误码ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案
错误码ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案

错误码ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案
ORA-12516 TNS:listener could not find available handler with matching protocol stack
解决
1.错误原因
由于超过连接最大值导致无法登录,所以用sys as dba也是登录不上的,首先需要先断开占用的procress,即停掉几个tomcat即可释放连接,接下来就可以登录了。
解决方法:
# 杀掉oracle进程:
kill -9 `ps -ef|grep "oracle" |grep "LOCAL=NO"|awk '{print $2}'`2.以oracle身份登录数据库
(1) 以oracle身份登录数据库,命令:su -oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba3.查看procress的参数值和占用值
#(1)procress参数值:
show parameter processes
#(2)procress占用值:
select count(*) from v$process;
4.查看session的参数值
#(1)session参数值:
show parameter sessions 
修改process和session的最大值
#(1)process最大值:
alter system set processes=500 scope=spfile;
#(2)session最大值:
alter system set sessions=776 scope=spfile;5.重启oracle 使配置生效
1).关闭
shutdown immediate
关闭成功
2).启动
startup
启动成功
6.查看procress&session的参数值 查看配置是否生效
1).查看procress参数值
show parameter processes
2).查看session参数值
show parameter sessions
修改成功
其他
sessions和processes关系
必须按照如下关系设置。
sessions=1.1*processes+5;
这个是sessions值和processes值的关系,最好按照这样做,
如果要将processes数设置为500,则sessions数必须为1.1*500+5=555