pdb连接数_案例分享|Oracle 11g RAC 数据库连接数过高处理办法

本文介绍了处理 Oracle 11g RAC 数据库连接数过高问题的方法,包括通过设置 SQLNET.EXPIRE_TIME 参数进行死连接检测,调整内存参数如 SGA 和 PGA,以及通过操作系统层面的 Kill 命令来释放连接。此外,还讨论了资源限制的配置和 Profile 超时设置,以避免长时间空闲的连接占用资源。
摘要由CSDN通过智能技术生成

作者 | JiekeXu

来源 | JiekeXu之路(ID: JiekeXu_IT)

转载请联系授权 | (微信ID:xxq1426321293)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天分享 Oracle 11g RAC 数据库连接数过高处理办法

本文发布于微信公众号【JiekeXu之路】,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

前   言

近期有一套数据库总是出现如下告警 “严重告警:XXX Oracle 服务器:10.10.X.X 数据库的侦听器 LISTENER 状态为 Inactive ”.这样的告警我们已经屡见不鲜,要么就是数据库宕机,要么就是监听异常关闭,因为是 RAC 环境,又不是什么很大问题,便不慌不忙的去处理此问题。

一 问题过程

当登陆到数据库检查数据库状态无异常,查看监听也是正常,那么集群资源状态也是正常。查看数据库后台日志时发现了错误 "ORA-00020:maximum number of processes(2000) exceeded" 连接数达到最大值 2000.查看当前数据库最大连接数设置为 2000,查看数据库除后台进程外两节点数均为 1940 多,外加 50 多个已经超出 2000 了。

排查数据库最大连接数和当前连接数

SQL> show parameter processNAME TYPE VALUE------------------------------------ ----------- ------------------------------aq_tm_processes integer 1cell_offload_processing boolean TRUEdb_writer_processes                  integer     8gcs_server_processes                 integer     4global_txn_processes integer 1job_queue_processes integer 1000log_archive_max_processes integer 4processes                            integer     2000processor_group_name stringSQL> select inst_id,status,count(*) from gv$session where type <> 'BACKGROUNND' group by inst_id,status order by 3;

从当前连接以及后台日志查看,INACTIVE 非活跃会话 1940 之多,但数据库 CPU 内存等资源均正常,也没有异常等待事件,不过下午已经出现过连接数过高的问题,根据经验猜测应用系统的中间件连接池以及初始连接大小设置有问题,果不其然后面联系应用方确认没有设置连接超时。

由于此系统不是核心系统,活跃会话也只有三四个更没有大事物,简单查询后便决定先杀掉连接恢复告警,但当时想要通过数据库杀掉非活跃会话连接,可是通过 SID 和 SERIAL# 查杀时很多会话已经不存在了。那么当时采取的办法就是通过操作系统 kill 查杀了,又因为活跃会话很少无事务,便使用如下命令全部查杀了。

注意:生产系统中谨慎操作,尤其是有大事物时不能直接查杀。

ps -ef | grep LOCAL=NO | grep -v grep | awk '{print $2}' | wc -lps -ef | grep LOCAL=NO | grep -v grep | awk '{print $2}' | xargs kill -9

查杀后连接数下降数据库告警恢复,算是告一段落了,没有深入问题根源。

二 问题复现

第二天早上十点多,还在查看另一系统的性能问题时,有人告知此系统又有问题,无疑又是连接数问题,登陆到系统后查看果不其然。两个节点的连接数已达 1800 多,通过操作系统 kill -9 紧急杀掉会话后数据库连接数下降,但是出现问题时还没达到阈值,肯定还有其他没有来得及的问题存在,这个便要后续排查了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值