重做日誌與歸檔日誌的區別

重做日誌與歸檔日誌有什麼區別?

重做日誌redo log file是LGWR進程從Oracle實例中的redo log buffer寫入的,是循環利用的。就是說一個redo log file(group) 寫滿後,才寫下一個。
歸檔日誌archive log是當數據庫運行在歸檔模式下時,一個redo log file(group)寫滿後,由ARCn進程將重做日誌的內容備份到歸檔日誌文件下,然後這個redo log file(group)才能被下一次使用。

不管數據庫是否是歸檔模式,重做日誌是肯定要寫的。而只有數據庫在歸檔模式下,重做日誌纔會備份,形成歸檔日誌。

一般來說,歸檔日誌結合全備份,用於數據庫出現問題後的恢復使用。

 

重做日誌是循環使用的。比如說,有三個重做日誌組A、B、C。那麼,當A寫滿後,系統就調用ARCn進程,將A備份爲歸檔日誌,同時B已經開始使用了。
假設你只有兩個組A、B,如果某種情況下,A正在備份,未結束,還不能繼續使用,而B也寫滿了,這個時候,數據庫就會出現掛起的情況。所以一般情況下,重做日誌最好是三個組或者再多一點,而且大小要適當。
實際上,一個重做日誌組滿了後,就開始寫入歸檔日誌。不是等ABC都寫滿了,再歸檔,這樣肯定就是出現掛起的情況了,Oracle不是這樣的,
歸檔日誌和重做日誌都是物理上的文件,只是存放的目錄不同,而且重做日誌的文件名不變,而歸檔日誌的文件名是備份時系統生成的。
重做日誌備份爲歸檔日誌後,系統就會把重做日誌的內容清空,但文件依然存在,準備下一次使用。


重做日誌紀錄了你所有做過的dml語句,重做日誌循環使用,寫滿一輪後就要覆蓋前面的。如果你是用熱備模式,當重做日誌寫滿一個後就將內容寫入歸檔日誌,以備將來恢復數據用。

只有數據庫運行在歸檔模式並且初始化參數ARCHIVE_LOG_START等於TRUE時,ARCn進程才能被啓動,進行自動歸檔。
如果數據庫運行在歸檔模式但ARCHIVE_LOG_START等於FALSE時,需要DBA手工歸檔。(這種方式可能會因爲歸檔不及時導致數據庫被迫掛起,不實用!)
發佈了60 篇原創文章 · 獲贊 9 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章