"物理備份"與"邏輯備份"

"物理備份"與"邏輯備份"

轉貼: http://database.51cto.com/art/200911/164201.htm

這裡介紹如果不採用Oracle Archive Log模式,只有兩種可用的備份方法:冷備份或export邏輯備份。根據關鍵業務服務器的特點,停下數據庫進行冷備份是根本不可能的,因此如果不採用Archive Log,只能進行邏輯備份。

 

備份的目的在於,當系統或數據庫出現問題時,能夠快速將數據庫進行恢復。對於Oracle數據庫,一般有兩種備份方式: “物理備份”和“邏輯備份”。“物理備份”指的是以copy數據文件方式進行備份;“邏輯備份”指的是用export等方式將數據從數據庫中抽取出來。物理備份又可以分為冷備份和熱備份。以下是各種備份的說明及前提條件。
◆Cold Backup(冷備份)主要指在關閉數據庫的狀態下進行的數據庫完全備份,備份內容包括所有數據文件、控製文件、聯機日誌文件、ini文件。
◆Hot Backup(熱備份)指在數據庫處於運行狀態下,對數據文件和控製文件進行備份,要使用熱備份必須將數據庫運行在(Archive Log)歸檔方式下。
◆Export(邏輯備份)這是最簡單的備份方法,可按數據庫中某個表、某個用戶或整個數據庫來導出,並且支持全部、累計、增量三種方式。使用這種方法,數據庫必須處於打開狀態,而且如果數據庫不是在restrict狀態將不能保證導出數據的一致性。

“物理備份”方式以相當於copy數據文件的方式進行備份,恢復時可以快速以相當於copy的方式將備份的數據copy回來,所以備份速度特別是恢復速度非常快。

如果不採用Oracle Archive Log模式,只有兩種可用的備份方法:冷備份或export邏輯備份。根據關鍵業務服務器的特點,停下數據庫進行冷備份是根本不可能的,因此如果不採用Archive Log,只能進行邏輯備份。

如果僅採用“邏輯備份”方式,恢復時會有以下兩個主要問題:

1. 無法恢復到最近時間點的數據。只能恢復到上一次export時的數據狀態,當天的數據將丟失。Oracle Archive Log模式下的物理備份可以用數據文件備份及Archive Log備份,將數據庫恢復到數據庫失敗前的時間點,不會丟失數據。

2.完成恢復可能需要很長時間。恢復只能用import方法進行,所以需要的時間包括:
a. create database及所有的tablespace:以每2分鐘初始化一個2G的數據文件來計算,建立一個400G的Oracle數據庫需要約6.7個小時。
b. import。時間較難確定,但保守估計應在10個小時以上(如果import過程中出現問題,恢復時間將延長)

3. 恢復時步驟較多,易出現人為故障。

由於這些原因,一般備份/恢復時都把export/import的方式做為輔助備份/恢復方式,對一些重要的表進行二級保護。這種備份方式也稱為“邏輯備份”方式,當某些重要的表被意外刪除時可進行邏輯import恢復。

而對於整個數據庫的日常備份/恢復,需要採用“物理備份”方式,即以相當於copy數據文件的方式進行備份,恢復時可以快速以相當於copy的方式將備份的數據copy回來。一般物理備份/恢復都採用Oracle RMAN工具來進行。

下面是“邏輯備份”與“物理備份”在數據庫故障時的恢復比較:

1. Oracle邏輯錯誤造成無法啟動
邏輯恢復:重新create database及各tablespace,import。可恢復到上次export的數據
物理恢復:將所有datafile copy回來,並利用Archive Log將數據庫recover到故障前的狀態

2.某一個datafile故障或丟失
邏輯恢復:重新create database及各tablespace,import。可恢復到上次export的數據
物理恢復:將該datafile copy回來

3.某一個tablespace故障
邏輯恢復:重新create database及各tablespace,import。可恢復到上次export的數據
物理恢復:將該tablespace copy回來

4.意外drop table
邏輯恢復: Import該table
物理恢復:將備份恢復到另一服務器上,export該table,在原數據庫中import

5.意外drop user
邏輯恢復: Import該user
物理恢復:將備份恢復到另一服務器上,export該user,在原數據庫中import

6.意外drop tablespace
邏輯恢復:情況較複雜,恢復易造成數據庫表之間的參照完整性被破壞。在此不做分析
物理恢復:情況較複雜,恢復易造成數據庫表之間的參照完整性被破壞。在此不做分析

在進行數據庫的恢復時,一定要了解Oracle Archive Log模式的原理,分析故障的原因,然後針對故障的情況進行相應的恢復。例如以下情況:
◆Oracle程序文件損壞?
◆control file損壞?
◆Online redo log損壞?
◆datafile損壞?
◆archive log損壞?
◆table或其中數據被意外刪除?