暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

数据库enq US – contention等待分析

IT那活儿 2022-12-03
1835

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


系统配置

oracle数据库:12.2的双节点RAC
操作系统: AIX Version 7.2

DB patch :

  • 25294150;
  • 25319173;
  • 29314424;OCW APR 2019 RELEASE UPDATE 12.2.0.1.190416 (29314424)
  • 29314339;Database Apr 2019 Release Update : 12.2.0.1.190416 (29314339)

其他信息暂不统计。


现象分析

现象分析:数据库出现大量的enq:US–contention等待事件。


等待事件分析

3.1 问题时间点确认,可以看到11:08到11:10节点1的等待事件先达到了高峰,同时节点2在11:09也出现了等待高峰,11:18节点1又有一个高峰。
3.2 查看问题时间11:08到11:10两个节点的等待事件和次数的情况如下:
可以看到节点1出现大量的enq: US – contention等待。
3.3 可以看到该SQL的执行次数在一节点执行了将是31号的一倍,同时也将近是2节点的执行次数的2倍。
通过查询该SQL是一个对PLC_UTIOPERATE_LOG的insert语句:
由于大量的insert请求导致online 的undo_segment不够用,从而导致了大量enq: US – contention
同时根据MOS How to correct performance issues with enq: US - contention related to undo segments (Doc ID 1332738.1)发现:
通过查询发现row  cache lock的cache是dc_rolllback_segments。
该数据的相关参数如下:

可以看到_rollback_segment_count并没有配置,建议在高并发的情况下配置该数值,保持一定数量的undo的segment


问题总结

建议设置为alter system set "_rollback_segment_count"=3000;
两个实例都需要执行,不需要重启数据库。
在设置之前先查询下当前的online的段的个数,如果太小建议分几次递增式的增加(比如一次增加600)。
回退方案:
  • alter system set "_rollback_segment_count"=修改前的值;     

遗留问题。


本文作者:牛志明(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论