程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 帶你快速了解Oracle數據庫提供的恢復機制

帶你快速了解Oracle數據庫提供的恢復機制

編輯:Oracle數據庫基礎
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日志文件,重做所有操作,包括未正常提交的事務的操作,然後再根據回滾段中的數據,撤銷未正常提交的事務的操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved