Archive Log

Archive Log File簡單來說就是Online Redo Log File的延伸,Online Redo Log File的運作方式是循環使用,當最後一個Online Redo Log File被寫滿時,將會使第一個Online Redo Log File被重複使用,而Archive Log File就是將準備要被覆蓋掉的線上重作日誌檔,做複製到特定路徑以作保存的動作,這動作就是「封存」,而被複製的線上重作日誌檔叫做Archive Log File如圖所示,而Online Redo Log File主要的目的是以防資料庫損毀時可以利用裡面的資料做回復的作業,因此Archive Log File就是將這些將被覆蓋掉的線上重作日誌檔案備份起來,以備不時之需。

Status1.當Redo Log File 1寫滿時要進行覆寫(Switch Log File)Redo Log File 2時,會先將Redo Log File 2進行封存產生Archive Log File後才會真正進行覆寫。
Status2.當Redo Log File 2寫滿時要進行覆寫(Switch Log File)Redo Log File 3時,會先將Redo Log File 3進行封存產生Archive Log File後才會真正進行覆寫。
Status3.當Redo Log File 3寫滿時要進行覆寫(Switch Log File)Redo Log File 1時,會先將Redo Log File 1進行封存產生Archive Log File後才會真正進行覆寫。

Archive File注意事項
  • Oracle資料庫開啟後有兩種模式,非封存模式(Noarchivelog mode)與封存模式(Archivelog Mode),這兩種模式有何不同呢?
  • 非封存模式(Noarchivelog mode):簡單的來說Noarchivelog mode就是當資料庫的Instance故障時只能利用Online Redo Log File裡面的資料進行資料庫還原,這也就是之前提過Oracle的Recovery的方式有分為兩種,Instance Recovery與Media Recovery,所謂的Instance Recover指的是當資料庫的Instance以不正常的方式停止時,重新啟動時Oracle會讀取Online Redo Log File,將已經commit的資料但又還未回寫到Data File內的資料回寫到Data File內,如此就把資料庫的狀態恢復到停止運作前的狀況,因此這意味當資料庫以Noarchivelog mode的方式運作時,如果需要做資料庫還原的動作時只能做Instance Recovery。萬一資料庫停止運作的原因是磁碟損毀,或者是線上重作日誌本身就是損毀的狀態等其他的原因,就只能將前一次的完整備份(Full Backup)拿出來恢復到上一次完整備份(Full Backup)的狀態,如此就必須遺失從上一次完整備份到停止運作前這段時間的資料。
  • 封存模式(Archivelog Mode):如果資料庫是以Archivelog Mode運作時,會當Online Redo Log File寫滿時,準備做覆寫(Switch Log File)下一個線上重做日誌檔前,會將那個線上重做日誌檔作「封存」(Archived)到特定的路徑下,或是儲存到磁帶上,以便當資料庫損毀時且以Instance Recovery也無法恢復資料庫,需進行Media Recovery時,有相關的紀錄資訊可將資料庫回復到損壞的那一刻的時間點,如此就可維持資料庫的高可用性。
  • Oracle的線上備份(Online Backup)或(Hot Backup)只有在Archivelog Mode下才能運作。
  • Oracle Data Guard或Oracle Standby Database,需要封存日誌檔才能正常運作,因此只有在Archivelog Mode下才能建置起來。
  • Oracle的LogMiner功能也需要在Archivelog Mode下才能有效的使用。

沒有留言:

張貼留言