當用戶(前臺進程)對事務進行提交或回滾操作時,oracle需要將涉及該事務的所有redo條目信息全部寫入到red logfile中。前臺進程會通知lgwr將redo log buffer中的重做日志條目寫出到redo logfile中。在11.2.0.3之前,lgwr會在寫入完成后通知前臺進程,用戶進程會一直等待,直到獲取到lgwr通知信息,保證所有的redo信息已全部安全的寫入磁盤。在11.2.0.3及以后,默認情況下,lgwr寫日志完成時不再主動的通知前臺用戶進程,由前臺進程按時間間隔輪詢查詢日志的寫入情況。前臺進程在等待寫入通知消息前,在數據庫中可能會看到log file parallel write、log file sync等待事件。
站在用戶的角度思考問題,與客戶深入溝通,找到龍沙網站設計與龍沙網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、成都網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、國際域名空間、網頁空間、企業(yè)郵箱。業(yè)務覆蓋龍沙地區(qū)。
由以上過程可知,Log file sync等待事件可能由以下原因引起:
1. Commit
2. Rollback
3. DDL操作
4. 數據字典更新(seq獲?。?/p>
oracle的建議log file sync等待事件的平均等待時間要保持在20ms以內。通常,該等待事件的平均等待時間一般在5ms以下。10ms也不一定有問題,需要看整體的系統(tǒng)運行情況。
通常出現log file sync事件可從以下幾個方面進行調整:
1. Redo log不要放在raid5上
2. 將小而短的事務進行合并,批量執(zhí)行(減少commit)
3. 使用COMMIT NOWAIT選項(10.2提供,異步提交,可能導致日志丟失)
4. 使用NOLOGGING / UNRECOVERABLE選項
5. 保證log切換時間間隔在15-20分鐘
log file sync的整個過程可以細分為以下幾個階段:
1) 用戶提交
2) 通知LGWR寫日志,LGWR喚醒
3) LGWR收集redo信息寫I/O
4) LGWR寫完成
5) LGWR通知前臺進程
6) 前臺進行收到通知,喚醒
第2步及第3步的寫入時間可以參考awr中Instance Activity Stats-redo write time部分。第3步會伴隨log file parallel write等待事件。系統(tǒng)負載較高時,第5步及第6步可能會產生延時。
整個過程可能使用下圖(tanel poder大師的圖)來表示:
有關log file sync討論:
完全揭秘log file sync等待事件:http://www.itpub.net/thread-1777234-1-1.html
本文名稱:logfilesync事件
本文路徑:http://jinyejixie.com/article20/igoejo.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站策劃、品牌網站設計、網站維護、ChatGPT、自適應網站、品牌網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯