Oracle 11g 遇到log file sync嚴重等待事件

ywxj_001發表於2017-10-20
資料庫版本:11.2.0.3.0
RAC雙節點,DG一節點。
RAC節點1正常,RAC節點2出現log file sync嚴重等待事件,資料庫效能受到嚴重影響。
從AWR報告看:
DB Time很高,log file sync等待嚴重。
正常情況下log file sync的Avg wait應該是1。



問題表現是log buffer向log file寫入很慢。
排除了IO問題。
有一篇文章關於11.2.0.3的log file sync等待事件問題。


如果 你遇到從10.2.0.5升級到11.2出現LOG FILE SYNCS等待事件顯著增長的效能問題,那麼有必要讀一下這篇文章了。
在以往的經驗中如果遇到這種場景 ,那麼 優先考慮設定 “_use_adaptive_log_file_sync”=false, adaptive log file sync是 11.2中提出的一個最佳化重做日誌寫的新特性, 在11.2.0.3以後預設為TRUE。
有客戶在將”_use_adaptive_log_file_sync”=false後,log file sync等待事件的平均等待時間從10ms 下降到 1~2ms的案例。
_use_adaptive_log_file_sync造成效能下降的原因可能是其導致LGWR使用了polling 方式來取代 post/wait,並且polling的間隔是10ms,這個間隔是在程式碼裡寫死的。
此外如果使用了Veritas/symantec 的ODM的話也需要特別注意:你可能遇到了Bug 13551402  High “log file parallel write” and “log file sync” after upgrading 11.2 with Veritas/Symantec ODM,這個BUG已經確認在11.2.0.3和11.2.0.2上存在。
對於該bug的內部討論最後確認是由於 11.2中lgwr的 IO使用了一種批次同步I/O介面,導致當配合Veritas/symantec 的ODM一起使用時會導致效能下降。

目前該BUG已經在多個Unix/Linux平臺上提供補丁:


這裡我直接修改“_use_adaptive_log_file_sync”=false

ALTER SYSTEM SET "_use_adaptive_log_file_sync"=FALSE;

SQL> SELECT   ksppinm, ksppstvl, ksppdesc  
  2        FROM   x$ksppi x, x$ksppcv y  
  3       WHERE   x.indx = y.indx AND  ksppinm like '_use_adaptive_log_file_sync';


KSPPINM
--------------------------------------------------------------------------------
KSPPSTVL
--------------------------------------------------------------------------------
KSPPDESC
--------------------------------------------------------------------------------
_use_adaptive_log_file_sync
FALSE
Adaptively switch between post/wait and polling

改完後再跑一下AWR。





透過前後兩天同一時間的AWR報告做對比,log file sync等待事件消失。log file sync變成了1。
DB Time也大幅下降。
問題解決。











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

相關文章