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

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


wKiom1nlvunS7gcRAAJVzjFWZKc589.png

工做原理:
ide

首先lgwr進程將redo log buffer中的重作數據寫入到redo log中,此時的redo log分組,每當一個redo log group寫滿時,或者發出switch logfile指令時都會觸發日誌組的切換,當發生日誌組切換時,arc進程會將當前的重作日誌數據寫入歸檔日誌。日誌

要知道,lgwr進程是將內存中的數據寫入到重作日誌文件,這是內存讀磁盤寫。而arc進程是將重作日誌文件寫入到歸檔文件,是磁盤讀磁盤寫。顯然lgwr進程的讀寫效率或者讀寫速度比arc進程要快,而頻繁發生DML操做的數據庫中,可能會發生歸檔慢,而重作日誌寫入速度快的狀況,這就會致使數據庫被HANG住,此時數據庫什麼也不作就是等待arc進程將當前重作日誌數據寫入到歸檔文件。blog

這時候就要考慮啓動更多的歸檔進程了,經過修改參數log_archive_max_processes來實現。進程

該參數是動態參數,直接修改便可。內存

① 查看當前該參數值get

wKiom1nlw27DmoSWAAAVUsXeLTw500.png

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

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

wKioL1nlwtai-N_hAAAjX0hGV3E911.png

③ 經過命令驗證一下class

wKiom1nlxcqAuMNsAAA8sNQE_i8483.png


你看,就是這麼簡單!

相關文章
相關標籤/搜索