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没问题排查思路
- 大批量数据插入数据库时,要
批量插入,不要单条插入。不然参数调再大也会报错的
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注、点赞、收藏、评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!
更多推荐


所有评论(0)