開門見山,先來看張圖(PS:這張圖是我從網上找的):數據庫
工做原理:
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
很明顯,當前最大歸檔進程數是4it
② 修改歸檔最大進程數爲5io
③ 經過命令驗證一下class
你看,就是這麼簡單!