zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法

2023-03-20 15:39:47 时间

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 的服务重启下即可。(简单直接)