本文主要是介绍ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ORA-12516 "TNS监听程序找不到符合协议堆栈要求的可用处理程序" 解决方案
1.进入数据库:sqlplus /nolog
2.进入数据库:conn sys/123456 as sysdba;
3.show parameter processes;
查看procress&session的参数值和占用值
上面提到由于超过连接最大值导致无法登录,所以用sys as dba也是登录不上的,首先需要先断开占用的procress,即停掉几个tomcat即可释放连接,接下来就可以登录了。在这里我停掉了所有tomcat,再通过sys用户登录sqlplus看一下procress和session的参数值和占用值:
4.select count(*) from v$process;
可以看到在没有任何在程序没有连接数据库的时候procress的占用值是65
解决办法:
1、查看当前的数据库连接数
select count(*) from v$process ; --当前的数据库连接数
select count(*) from v$session; --当前的session连接数
2、数据库允许的最大连接数
select value from v$parameter where name ='processes'; --数据库允许的最大连接数
3、修改数据库最大连接数 修改processes和sessions值
alter system set processes = 300 scope = spfile; --修改最大连接数:
alter system set sessions=335 scope=spfile; --修改session最大连接数:
(ORACLE的连接数(sessions)与其参数文件中的进程数(process)关系:sessions=(1.1*process+5))
4、关闭/重启数据库(修改processes和sessions值必须重启oracle服务器才能生效)
shutdown immediate; --关闭数据库
startup; --重启数据库
或者重启Oracle服务或重启Oracle服务器。
(注释:执行绿色的命令即可)
这篇关于ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序 解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!