帶你快速瞭解Oracle資料庫提供的恢復機制

idba發表於2008-05-10
Oracle資料庫中的恢復機制採用了轉儲和登記日誌檔案兩個技術。

Oracle向資料庫管理員(DBA)提供了多種轉儲後備副本的方法,如檔案拷貝、利用Oracle的Export實用程式,用SQL命令spool以及自己程式設計實現等。相應地,Oracle也提供了多種重灌後備副本的方法,如檔案拷貝、利用Oracle的Import實用程式、利用SQL*Loader以及自己程式設計實現等。

在Oracle的早期版本中,日誌檔案以資料塊為單位,也就是說,Oracle的恢復操作不是基於操作,而是基於資料塊的。Oracle將更新前的舊值與更新後的新值分別放在兩個不同的日誌檔案中。記錄資料庫更新前的舊值的日誌檔案稱為資料庫前像檔案(Befor Image,簡稱BI檔案),記錄資料庫更新後的新值的日誌檔案稱為資料庫的後像檔案(After Image,簡稱AI檔案)。由於BI檔案關係到能否將資料庫恢復到一致性狀態,因此BI檔案是必須的。而AI檔案的作用是減少必須重新執行的事務程式,儘可能多的恢復資料庫,所以在Oracle中AI檔案是任選的。日誌檔案是十分佔據空間的,為節省儲存空間和操作時間,DBA可以不配置AI檔案。沒有AI檔案,恢復機制進行故障恢復時只能執行UNDO處理,不能執行REDO處理。

Oracle為了能夠在出現故障時更有效地恢復資料,也為了解決讀“髒”資料問題,提供了REDO日誌檔案和回滾段(Rollback Segment).REDO日誌檔案中記錄了被更新資料的前像和後像,設在資料庫緩衝區中的回滾段記錄更新資料的前像。在利用日誌檔案進行故障恢復時,為減少掃描日誌檔案的遍數,Oracle首先掃描REDO日誌檔案,重做所有操作,包括未正常提交的事務的操作,然後再根據回滾段中的資料,撤銷未正常提交的事務的操作。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-264855/,如需轉載,請註明出處,否則將追究法律責任。

相關文章