active会话不断增多案例处理

今天巡检一个数据库, 操作系统AIX里查看资源情况,内存使用维持在95%,cpu在90%,分页用了27% ,磁盘bisy在1%。查询select count(*) from v$session where status='ACTIVE‘  发现有300多活动会话,平时就40,50个。真的吓我一跳。查看锁信息,没有锁。查看等待事件,
select sid,p1,p1raw,p2,p2raw,p3,p3raw,wait_time,seconds_in_wait,state,event
  from v$session_wait where event not in (select name from v$event_name where wait_class='Idle');  
发现300多个“cursor: pin S wait on X”事件。查看活动的会话,都是查的一张表infec表,LOGON_TIME 都在4月9号,还有一部分是4月10号,还有少些是4月24号的。今天都是4月24号了,这么早的会话还保持活动。原来该表是通过dblink查的别的数据库的表,而4月9号那个源库down过机器,这可能是导致会话一直没有释放的原因。
解决方法:把有问题的sesion查出来,杀掉。
kill session语句如下:
select 'ALTER SYSTEM KILL SESSION ''' || sid || ',' || serial# || ''';'
  FROM (select DISTINCT s.sid AS sid, s.serial# AS serial#
          from v$sqltext sq, v$session s
         where sq.ADDRESS = s.SQL_ADDRESS
           and sq.SQL_TEXT like '%INFEC%'
           and s.STATUS = 'ACTIVE') P
杀掉这些会话,cpu,内存,分页使用率都降下来了。
总结:如果dblink源库down过,可能会导致当时的查询语句一直保持ACTIVE,必须检查和down库相关的数据库的会话,把这些hang住的会话杀掉。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25027760/viewspace-722153/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25027760/viewspace-722153/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值