這是我們為大家提供的一篇關於 介紹Oracle數據庫備份恢復的理論基礎的文章,接下來就讓我們一起來了解一下吧!
Oracle數據庫備份恢復概念
Oracle數據庫備份是對於數據庫的物理結構文件,包括數據文件、日志文件和控制文件的備份。數據庫備份又可分為完全數據庫備份和部分數據庫備份。完全數據庫備份是對於構成數據庫的全部數據庫文件、在線日志文件和控制文件的一個備份。完全數據庫備份只能是脫機備份,在數據庫正常關閉後進行。在數據庫關閉的時候文件的同步號與當前檢查點一致,不存在不同步的問題,對於這一類備份方法,在復制回數據庫備份文件後不需要進行數據庫恢復。部分數據庫備份可以在數據庫關閉和運行的時候進行。例如,在數據庫關閉時備份一個數據文件或在數據庫聯機時備份一個數據表空間。部分數據庫備份由於存在數據庫文件之間的不同步,在備份文件復制回數據庫時需要實施數據庫恢復,所以這種方式只能在歸檔模式下使用,使用歸檔日志進行數據庫恢復。
1 Oracle的日志文件
Oracle數據庫的日志文件(Redo Log Files,也叫重做日志),用於記錄對數據庫的修改操作信息,包括普通用戶對數據庫裡的數據的修改也包括數據庫管理員對數據庫結構的修改。因此,數據庫的日志信息往往比數據信息還要多。比如說當用戶對一個表裡的一個字段進行修改,修改完成後提交數據庫,這時數據文件中只需要存儲修改後的數據,但是日志文件則要記錄兩個值,一個是修改前的記錄值,一個是修改後的記錄值。當然如果一段時間之類數據庫僅僅只用於查詢,沒有修改操作,則不會產生日志信息。日志文件是與數據庫備份恢復有著最直接關系的文件,有時候其作用甚至比數據文件更加重要。日志文件的作用主要體現在數據庫出現故障的時候,當實例或介質失敗時使用。如果關掉數據庫所在機器的電源,造成數據庫實例失敗,Oracle 將使用聯機重做日志,以將數據庫系統恢復到電源停止之前的那一剎那。如果包含數據文件的磁盤驅動器發生永久性故障,Oracle將使用歸檔的重做日志,與使用聯機重做日志一樣,將驅動器的備份及時恢復到故障發生前的那一個時間點。例如,如果意外地丟失了一個表,或刪除了一些關鍵的信息,並提交了操作,可以通過這些聯機和備份的重做日志來進行恢復,並使Oracle立即將它恢復到事故發生前的時刻。
有兩種類型的重做日志文件,它們是聯機日志文件的和歸檔日志文件。每個Oracle數據庫至少有兩個聯機日志文件,這些聯機重做日志文件在大小上是固定的,並以循環的方式使用。第一個日志文件被填滿後,寫入第二個日志文件,然後依此類推。當所有聯機日志文件都被填滿時,就又回到第一個日志文件,用新事務的數據對其進行重寫。從一個日志文件切換到另一個日志文件的動作叫做日志切換。如果數據庫正以歸檔模式運行,在發生日志切換重寫聯機日志文件前,數據庫ARCH(歸檔進程)將先對其進行備份(即歸檔),由此就產生了歸檔日志文件。如果數據庫運行在非歸檔模式,舊的日志文件將直接被新的日志文件所覆蓋,不會產生歸檔日志。
2 Oracle的運行方式
Oracle數據庫有兩種運行方式,一種是非歸檔方式,一種是歸檔方式。