enq: SQ - contention 等待事件处理办法

故障描写:
2014-3-24
RAC数据库,应用系统运行异常,登录不进

数据库信息查看:
后台CPU飙升厉害,资源使用过大。发现两个节点锁等待超过1100,并且还在不断增长

解决办法:
部分外来进程的kill,锁等待消除。

分析报告:

我们可以通过分析故障前后的数据库运行状态来分析问题,比如:

故障时的数据库状态如下:


故障处理后的数据库状态:

故障发生时,p_pub_user_online_curd在54分钟被执行了83229次,相当于每秒26次;

故障处理后,p_pub_user_online_curd在 70分钟执行了54562次,相当于每秒13次。

通过比较可以看到,故障时的系统负载比非故障时提高了一倍。

因为p_pub_user_online_curd(:1, :2, :3)存储过程,涉及到序列SQ_MENULOG和SQ_PUBLOGS的存取,由于序列的cache默认为20,所以在高并发的情况下,会导致enq:SQ-contention,大量的序列等待导致服务器cpu飙高。这个从AWR报告中也有体现:



序列冲突引起的等待时间占用了数据库90%以上的CPU时间。

解决措施

1、  降低存储过程p_pub_user_online_curd调用的频率;

2、  将SQ_MENULOG和SQ_PUBLOGS的缓存从20调整1000,执行语句如下:

alter sequence SQ_MENULOG cache 1000;

alter sequence SQ_PUBLOGS cache 1000;

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

转载于:http://blog.itpub.net/28869493/viewspace-1128506/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值