資料庫出現很高的enq: DX - contention 等待

不一樣的天空w發表於2018-01-29

檢查客戶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

21.07

Other

db file scattered read

1,312,470

4,212

3

3.92

User I/O

DB CPU

3,928

3.66

db file sequential read

1,349,206

3,522

3

3.28

User I/O

其中以enq: DX – contention等待最為嚴重,其實是inactive transaction branch。而這兩個等待事件平均等待時間分別是6秒和1秒,平均等待時間這麼整,顯然不是偶然,這說明這兩個等待時間都經歷了各自的超時時間。

查詢metalink,這個問題也是BUG所致,在文件High CPU by Sessions Holding DX Enqueue; Others Waiting 'enq: DX - contention' [ID 1275884.1]中描述了這個錯誤。

導致問題的原因是一些持有分散式事務佇列的使用者嘗試中止或退出分散式事務,Oracle在處理的時候佔用了大量的CPU資源。

而用來判斷是否出現這個問題的標誌是,資料庫中出現了明顯的enq: DX – contentioninactive transaction branch等待事件。

這個問題影響10.211.1版本,在11.2中被FIXED。可以透過打單獨的8552942的補丁來解決這個問題。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2150602/,如需轉載,請註明出處,否則將追究法律責任。

相關文章