所謂數據備份,就是保留一套備用系統,當運行系統出現故障時,能夠以最小的時間恢復原來的數據。數據庫的備份,可以是整個數據庫的拷貝,也可以是其中一部分數據的拷貝一個或多個表空間)。數據備份一般有兩個層次:
硬件級備份:用冗余的硬件來保證系統的連續運行,比如雙機容錯、硬盤鏡像等方式。如果主硬件損壞,後備硬件能夠立刻接替其工作。
軟件級備份:將系統數據保存到其他可以移動的介質上,如磁帶、軟盤、光盤等。當系統出現故障後,可以將系統恢復到備份時的狀態。本文主要討論的是數據庫的軟件級備份。
一、DB2數據庫的備份
DB2數據庫可以備份整個數據庫,也可以備份其中的一個或多個表空間;可以在應用連接到數據庫時和事務正在處理時進行備份這稱為聯機備份),也可以在沒有任何應用連接到數據庫時進行備份這稱為脫機備份)。(見表一)
DB2數據庫使用命令BACKUP來備份。BACKUP命令需要SYSADM,SYSCTRL或SYSMAINT的權限,其命令語法為:BACKUP DATABASE 數據庫別名 TO 介質名
或者
BACKUP DATABASE 數據庫別名 TABLESPACE 表空間名 [ONLINE} TO 介質名
其中介質名一般指定為介質的絕對路徑,在 AIX 中不回轉的磁帶機設備名為 /dev/rmt0,回轉的磁帶機設備名為 /dev/rmt0.n 。也可將數據備份在硬盤上,介質名即為其絕對路徑。BACKUP命令在指定的介質上生成一個或多個備份文件,以下顯示了在 AIX 4.3 for RS/6000 上生成的文件名結構:
以下是 BACKUP 命令的一些例子:
(1)此例子是在指定的服務器目錄 /backup/mydb 下給 mydb 數據庫創建一個完整的備份:
BACKUP DATABASE mydb TO /backup/mydb
(2)此例子是給 mydb 數據庫中指定的表空間 myspace1 進行聯機備份,在進行備份時,應用可繼續更新數據庫:
BACKUP DATABASE mydb TABLESPACE myspace1 ONLINE TO /backup/mydb
表一 數據庫能否進行向前恢復帶來的影響
如果不允許進行向前恢復
如果允許進行向前恢復
在發生失敗後,可以把數據庫恢復到失敗前與最後一次事務一致的狀態。
同樣,也支持恢復到與最後一次事務一致的狀態。
可以把數據庫恢復到任何有效的備份狀態,但是不能重新執行發生在備份之後的事務。
可以把數據庫恢復到任何有效的備份狀態,並且可以重新執行從發生失敗到當前為止提交的事務。
只能在沒有任何應用連接到數據庫時進行備份這稱為脫機備份)。
可以在應用連接到數據庫時和事務正在處理時進行備份這稱為聯機備份)。同樣支持脫機備份。
每一個備份都必須包含整個數據庫的當前狀態。
一個備份可能包含整個數據庫的當前狀態,或者是一個或多個表空間。數據庫的表空間可以單獨地備份和恢復。
二、DB2數據庫的恢復
DB2數據庫提供了三種恢復類型:
1、崩潰恢復crash recovery):崩潰恢復是用來在失敗後立即進行恢復,把數據庫恢復到一個事務一致狀態,此狀態的所有更改只有在執行提交事務後才生效。崩潰恢復使用命令 RESTART 執行。
2、備份恢復restore recovery):備份恢復可從上一次所作的備份中恢復數據庫的內容。備份恢復使用 RESTORE 命令執行。
3、向前恢復forward recovery):在一個數據庫從備份中恢復了以後,向前恢復可以重新執行那些在備份後才更改了數據庫的操作。在這種情況下,數據庫可以恢復到備份和當前時間之間的任何時間斷。向前恢復使用 ROLLFORWORD 命令執行。
崩潰恢復和備份恢復對任何數據庫都適用,而向前恢復只有在數據庫被指定可以使用此功能是才使用。表一顯示了此功能帶來的影響。
表一 數據庫能否進行向前恢復帶來的影響
如果不允許進行向前恢復
如果允許進行向前恢復
在發生失敗後,可以把數據庫恢復到失敗前與最後一次事務一致的狀態。
同樣,也支持恢復到與最後一次事務一致的狀態。
可以把數據庫恢復到任何有效的備份狀態,但是不能重新執行發生在備份之後的事務。
可以把數據庫恢復到任何有效的備份狀態,並且可以重新執行從發生失敗到當前為止提交的事務。
只能在沒有任何應用連接到數據庫時進行備份這稱為脫機備份)。
可以在應用連接到數據庫時和事務正在處理時進行備份這稱為聯機備份)。同樣支持脫機備份。
每一個備份都必須包含整個數據庫的當前狀態。
一個備份可能包含整個數據庫的當前狀態,或者是一個或多個表空間。數據庫的表空間可以單獨地備份和恢復。