重做日誌及歸檔日誌的工作原理解析

開門見山,先來看張圖(PS:這張圖是我從網上找的):


wKiom1nlvunS7gcRAAJVzjFWZKc589.png

工作原理:

首先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來實現。

該參數是動態參數,直接修改即可。

① 查看當前該參數值

wKiom1nlw27DmoSWAAAVUsXeLTw500.png

很明顯,當前最大歸檔進程數是4

② 修改歸檔最大進程數爲5

wKioL1nlwtai-N_hAAAjX0hGV3E911.png

③ 通過命令驗證一下

wKiom1nlxcqAuMNsAAA8sNQE_i8483.png


你看,就是這麼簡單!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章