log file sync等待事件的成因及優化方法

chenfeng發表於2015-12-12

資料庫中的log file sync等待事件指的是,當user session 提交(commit)時,user session會通知LGWR程式將redo buffer中的資訊寫入到redo log file,當LGWR程式完成寫操作後,LGWR程式再post(通知)user session 寫操作已經完成,user session 接收到LGWR的通知後提交操作才完成。因此user session 在沒有收到LGWR post(通知)之前一致處於等待狀態,具體的等待事件為log file sync。根據實踐經驗,引起log file sync等待事件的原因有以下幾種:

事務過度的提交,即應用程式過度commit或者rollback

儲存I/O資源緊張,導致lgwr程式寫速度緩慢。

CPU資源緊張,lgwr程式獲得不了響應的CPU時間片。

RAC節點之間SCN同步。

RAC節點之間CR塊傳遞。

控制檔案爭用。

log file sync等待事件的優化方案:
(1)優化了redo日誌的I/O效能,儘量使用快速磁碟,不要把redo log file存放在raid 5的磁碟上; RAID 5--->RAID 1+0
(2)加大日誌緩衝區(log buffer);
(3)使用批量提交,減少提交的次數;
(4)部分經常提交的事務設定為非同步提交;ALTER SESSION SET COMMIT_WRITE = NOWAIT;
(5)適當使用NOLOGGING/UNRECOVERABLE等選項;
(6)採用專用網路,正確設定網路UDP buffer引數;
(7)安裝最新的資料庫版本避免bug;


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

相關文章