首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >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!“问题解决方法

作者头像
小蓝枣
发布2021-12-01 15:02:59
发布2021-12-01 15:02:59
2.5K0
举报

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 的最大限制数调高,再重启数据库就能解决问题了。

首先先查询当前已启用进程数。

代码语言:javascript
复制
--- 当前已启用进程数
select count(*) from v$process;

然后查询参数里限制的最大进程数

代码语言:javascript
复制
--- 查询参数里限制的最大进程数
select value from v$parameter where name = 'processes';

然后设置参数里的最大值,我这两个由原来的 500,调到现在的 2000 了。

代码语言:javascript
复制
alter system set processes = 2000 scope = spfile;
alter system set sessions = 2000 scope = spfile;

重启后看下效果:

问题到此解决。

接下来给大家提供一种无需数据库管理员密码登录、输入重启口令重启数据库的方法。(oracle 11g 管理员密码忘记无法用口令重启数据库) 直接在服务里把 oracle 的服务重启下即可。(简单直接)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档