阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

193次阅读
没有评论

共计 1332 个字符,预计需要花费 4 分钟才能阅读完成。

前言

简单描述一下场景,总共两台应用服务器,每台安装 3 个 tomcat 进行集群,并通过 nginx 做了负载均衡,今天在生产环境中部署项目后进行测试,发现在一台应用服务器中同样的代码,tomcat1 和 tomcat2 正常,而访问 tomcat3 时报 404 错误,去看了下 log 发现是数据库服务器出了问题:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案

然后登录到 DB 服务器去看看什么情况,结果登录时发现报以下错误:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案

居然已经登录不上了,根本原因就是因为 Oracle 的 process 和 session 已经达到甚至超过最大值了,接下来就详细说明一下解决方案。

查看 procress&session 的参数值和占用值

上面提到由于超过连接最大值导致无法登录,所以用 sys as dba 也是登录不上的,首先需要先断开占用的 procress,即停掉几个 tomcat 即可释放连接,接下来就可以登录了。在这里我停掉了所有 tomcat,再通过 sys 用户登录 sqlplus 看一下 procress 和 session 的参数值和占用值:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案

可以看到在没有任何在程序没有连接数据库的时候 procress 的占用值是 18,而参数值为 300,所有此时占用量很小,那么接下来分别启动应用服务器下的 tomcat,依次看一下应用服务器 1 下的第 1 个 tomcat,应用服务器 1 下的第 2 个 tomcat 和应用服务器 1 下的第 3 个 tomcat 之后,procress 占用值的变化~
启动第 1 个 tomcat 后访问主页:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案
启动第 2 个 tomcat 后访问主页:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案
启动第 3 个 tomcat 后访问主页:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案

不难发现每次 process 的值都增加了 60,此时应用服务器 1 的 tomcat 已全部启动,那么也意味着应用服务器 2 的第二台 tomcat 启动后,process 的值已超过 300(198+120=318),所以当再启动应用服务器 2 的第 3 台 tomcat 时就无法登录了,所以我们仅需要修改 process 和 session 的最大值即可,修改语句如下:

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

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

sessions=processes*1.5+5

也就是说 sessions 的值是根据 processes 的值计算后得到的,这里需要注意一下,最后重启一下 Oracle 服务即可,此时再分别开启应用服务器 2 的 3 个 tomcat 并依次访问主页后再看一下 process 和 session 的参数值和占用值情况:
ORA-12516“TNS 监听程序找不到符合协议堆栈要求的可用处理程序”解决方案

如上图,可以看到 process 的值已经成功修改为 1000,而此时开启了 6 个 tomcat 所占用的 process 值为 378,session 的占用值为 375,都远远小于参数值,所以至此项目均已可以正常访问。

总结

简单记录一下这个 Oracle 异常的解决方案,希望对遇到同样问题的朋友有所帮助,The End。

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/135546.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1332字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中