Oracle连接数满问题解决及排查 ORA-00020:maximumnumber of processes
问题描述:测试环境功能验证过程中,测试反馈页面数据加载迟钝,接口查询超时的情况。
缘故原由分析:
1、有大概是数据库操作不停没释放连接。
2、项目使用数据库连接池,由于设置问题,造成连接不停未释放。
3、项目未使用数据库连接池,不停创建连接并未关闭连接。
解决方案:
1、可以先停止部分项目标历程。
2、增长数据库连接数。
3、排查连接数升高的问题。
排查思绪:
验证oracle服务是否正常
1、登录oracle服务器查看服务是否正常
##切换oracle用户
su - oracle
##连接oracle
sqlplus / as sysdba 2、发现登录不进去,返回异常,大概意思是由于processes历程数达到了最大值,导致无法登录.
ORA-00020:maximumnumber of processes(2000) exceeded 释放连接数
两种方式:
1、关闭连接数据库的相关服务,让数据库连接数降下来。
2、停止监听服务,等待数据库访问连接数下降后再登录。
#停止监听服务
lsnrctl stop
#启动监听服务
lsnrctl start 查询当前连接数
selectcount(*), b.MACHINE, b.USERNAME , b.PROGRAM ,b.OSUSER from v$process a, v$session b where a.ADDR = b.PADDR andb.USERNAME is not nullgroup byb.MACHINE , b.USERNAME , b.PROGRAM ,b.OSUSER 如下图:
https://i-blog.csdnimg.cn/direct/c2690f8dc1ea49a588775ac2040f50ea.png
增长数据库连接数
##使用dba权限登录
sqlplus / as sysdba
##查询数据库设置的最大连接数
show parameter processes;
##修改最大连接数
alter system set processes = 3000 scope = spfile;
##重启数据库
shutdown immediate;
startup;
##重新查询数据库设置的最大连接数
show paratemer processes; 排查连接数升高的问题
两种排查方向:
第一种:
1、通过查询当前连接数sql找到 连接数最多的连接。
2、通过连接信息中的username 从而找到开发的代码中使用的数据库连接信息的username。
3、排查服务中数据库连接信息,设置信息是否有问题。
第二种:
1、数据库服务地点服务器, 实行netstat -ano 命令来看所有连接,包含IP端口信息
##执行命令
netstat -ano > 1.txt https://i-blog.csdnimg.cn/direct/3c08d17bfbd144e6ab46d20d4c9c130b.png
2、通过外部哀求IP端口,找到对应服务进行下一步排查。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]