Oracle 数据库 sql 连接报错:
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;
重启后看下效果:
问题到此解决。
接下来给大家提供一种无需数据库管理员密码登录、输入重启口令重启数据库的方法。(oracle 11g 管理员密码忘记无法用口令重启数据库)
直接在服务里把 oracle 的服务重启下即可。(简单直接)
喜欢的点个赞❤吧!