Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
·
文章目录
前言
- 从项目中日志发现Oracle大量数据插入时会报错 :
java.sql.SQLException: Listener refused the connection with the following error: ORA-12516, TNS:listener could not find available handler with matching protocol stack!
问题原因 :
- 该问题是数据库
负载压力较大
,数据库已经启用的进程数
达到了参数限制的最大进程数
,无法再创建新的进程了,这个时间再连接数据库就会报错了。(连接数据库会创建新的进程,占用新的 session 会话)
解决方法:
- 我们把数据库参数的
进程
和session
的最大限制数调高
,再重启数据库就能解决问题了。
首先先查询当前已启用进程数
--- 当前已启用进程数
select count(*) from v$process;
然后查询参数里限制的最大进程数
--- 查询参数里限制的最大进程数
select value from v$parameter where name = 'processes';
然后设置参数里的最大值,我这两个由原来的 500,调到现在的 2000 了。
alter system set processes = 2000 scope = spfile;
alter system set sessions = 2000 scope = spfile;
- 重启后解决问题。
数据库参数的进程和 session没问题排查思路
- 大批量数据插入数据库时,要
批量插入
,不要单条插入。不然参数调再大也会报错的
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、点赞
、收藏
、评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献14条内容
所有评论(0)