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

2021-09-08 08:22:10 字數 1140 閱讀 8852

重做日誌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手工歸檔。(這種方式可能會因為歸檔不及時導致資料庫被迫掛起,不實用!)

重做日誌檔案也叫聯機日誌檔案,一般資料庫有幾個日誌檔案(例如有三個,編號分別為1,2,3)先寫1,當1滿時再寫2,當2滿時再寫3,當3滿時1就歸 檔出來,產生乙個檔案寫到磁碟上,這個檔案就叫歸檔日誌檔案.1歸檔出來後,新的聯機日誌檔案又寫到1中,將原來的覆蓋,(即聯機日誌是迴圈使用的).一 般當產生乙個檢查點或聯機日誌寫滿一定程度時會產生乙個歸檔日誌檔案.

Oracle 重做日誌歸檔

1 alter system switch logfile是強制日誌切換,不一定就歸檔當前的重做日誌檔案 若自動歸檔開啟,就歸檔當前的重做日誌,若自動歸檔沒有開啟,就不歸檔當前重做日誌。alter system archive log current是歸檔當前的重做日誌檔案,不管自動歸檔有沒有打都歸...

聯機重做日誌檔案與歸檔日誌檔案

日誌檔案分為重做日誌檔案 redo log file 和歸檔日誌檔案 archive log file 重做日誌redo log file是lgwr程序從oracle例項中的redo log buffer寫入的,是迴圈利用的。就是說乙個redo log file group 寫滿後,才寫下乙個。當所...

oracle重做日誌改為歸檔模式

1 檢視資料庫的當前模式 archive log list 注意用sqlplus 黑屏登入,pl developer好像有問題 使用者名稱 sys 密碼 zqs520 as sysdba 2 關閉資料庫 shutdown immediate 3 以載入方式啟動資料庫 startup mount 4 ...