Oracle資料庫重做日誌及歸檔日誌的工作原理:
- lgwr程式將redo log buffer中的重做資料寫入到redo log中,此時的redo log分組,每當一個redo log group寫滿時,或者發出switch logfile指令時都會觸發日誌組的切換,當發生日誌組切換時,arc程式會將當前的重做日誌資料寫入歸檔日誌;
- lgwr程式是將記憶體中的資料寫入到重做日誌檔案,這是記憶體讀磁碟寫。然而arc程式是將重做日誌檔案寫入到歸檔檔案,是磁碟讀磁碟寫。
- 顯然lgwr程式的讀寫效率或者讀寫速度比arc程式要快,而頻繁發生DML操作的資料庫中,可能會發生歸檔慢,而重做日誌寫入速度快的情況,這就會導致資料庫被HANG住,此時資料庫什麼也不做就是等待arc程式將當前重做日誌資料寫入到歸檔檔案。這時候就要考慮啟動更多的歸檔程式了,通過修改引數log_archive_max_processes來實現。該引數是動態引數,直接修改即可。
1)檢視當前該引數值(命令結果中的VALUE顯示的是:當前最大歸檔程式數)
2)修改歸檔最大程式數為5
3)通過命令驗證一下