数据库出现很高的enq: DX - contention等待该怎么解决
数据库出现很高的enq: DX - contention等待该怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
检查客户AWR报告时,发现数据库经历严重的enq: DX – contention等待。
这个数据库的版本是11.1.0.6 for Windows 64bits for AMD,在AWR报告中,TOP 5等待事件为:
Event | Waits | Time(s) | Avg wait (ms) | % DB time | Wait Class |
enq: DX - contention | 22,627 | 135,751 | 6000 | 126.41 | Other |
inactive transaction branch | 22,625 | 22,626 | 1000 | 07 | Other |
db file scattered read | 1,312,470 | 4,212 | 3 | 92 | User I/O |
DB CPU | 3,928 | 66 | |||
db file sequential read | 1,349,206 | 3,522 | 3 | 28 | User I/O |
其中以enq: DX – contention等待最为严重,其实是inactivetransaction branch。而这两个等待事件平均等待时间分别是6秒和1秒,平均等待时间这么整,显然不是偶然,这说明这两个等待时间都经历了各自的超时时间。
查询metalink,这个问题也是BUG所致,在文档High CPU by Sessions Holding DXEnqueue; Others Waiting 'enq: DX - contention' [ID 1275884.1]中描述了这个错误。
导致问题的原因是一些持有分布式事务队列的用户尝试中止或退出分布式事务,Oracle在处理的时候占用了大量的CPU资源。
而用来判断是否出现这个问题的标志是,数据库中出现了明显的enq: DX – contention和inactive transactionbranch等待事件。
这个问题影响10.2和11.1版本,在11.2中被FIXED。可以通过打单独的8552942的补丁来解决这个问题。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341