Oracle连接数满问题解决及排查 ORA-00020:maximumnumber of processes ...

打印 上一主题 下一主题

主题 994|帖子 994|积分 2982

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题描述:

测试环境功能验证过程中,测试反馈页面数据加载迟钝,接口查询超时的情况。
缘故原由分析:

1、有大概是数据库操作不停没释放连接。
2、项目使用数据库连接池,由于设置问题,造成连接不停未释放。
3、项目未使用数据库连接池,不停创建连接并未关闭连接。

解决方案:

1、可以先停止部分项目标历程。
2、增长数据库连接数。
3、排查连接数升高的问题。
排查思绪:
验证oracle服务是否正常
     1、登录oracle服务器查看服务是否正常
  1. ##切换oracle用户
  2. su - oracle
  3. ##连接oracle
  4. sqlplus / as sysdba
复制代码
     2、发现登录不进去,返回异常,大概意思是由于processes历程数达到了最大值,导致无法登录.
  1. ORA-00020:maximumnumber of processes(2000) exceeded
复制代码
释放连接数
        两种方式:
          1、关闭连接数据库的相关服务,让数据库连接数降下来。
          2、停止监听服务,等待数据库访问连接数下降后再登录。
  1. #停止监听服务
  2. lsnrctl stop
  3. #启动监听服务
  4. lsnrctl start
复制代码
查询当前连接数
  1. select  count(*), b.MACHINE, b.USERNAME , b.PROGRAM ,b.OSUSER from v$process a, v$session b where a.ADDR = b.PADDR and  b.USERNAME is not null  group by  b.MACHINE , b.USERNAME , b.PROGRAM ,b.OSUSER
复制代码
如下图:

增长数据库连接数
  1. ##使用dba权限登录
  2. sqlplus / as sysdba
  3. ##查询数据库设置的最大连接数
  4. show parameter processes;
  5. ##修改最大连接数
  6. alter system set processes = 3000 scope = spfile;
  7. ##重启数据库
  8. shutdown immediate;
  9. startup;
  10. ##重新查询数据库设置的最大连接数
  11. show paratemer processes;
复制代码
排查连接数升高的问题
两种排查方向:
       第一种:
        1、通过查询当前连接数sql找到 连接数最多的连接。
        2、通过连接信息中的username 从而找到开发的代码中使用的数据库连接信息的username。
        3、排查服务中数据库连接信息,设置信息是否有问题。
       第二种:
    1、数据库服务地点服务器, 实行netstat -ano 命令来看所有连接,包含IP端口信息
  1. ##执行命令 
  2. netstat -ano > 1.txt
复制代码

       2、通过外部哀求IP端口,找到对应服务进行下一步排查。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表