隨著銀行業(yè)的不斷發(fā)展壯大,計算機網(wǎng)絡(luò)和數(shù)據(jù)庫的應用越來越廣泛,其中數(shù)據(jù)庫,特別是大型數(shù)據(jù)庫的安全問題,已得到廣大廣大數(shù)據(jù)庫管理員的重視。為了防止數(shù)據(jù)的意外丟失或損壞,必須對數(shù)據(jù)采取有效的備份手段。
所謂數(shù)據(jù)備份,就是保留一套備用系統(tǒng),當運行系統(tǒng)出現(xiàn)故障時,能夠以最小的時間恢復原來的數(shù)據(jù)。數(shù)據(jù)庫的備份,可以是整個數(shù)據(jù)庫的拷貝,也可以是其中一部分數(shù)據(jù)的拷貝(一個或多個表空間)。數(shù)據(jù)備份一般有兩個層次:
-
硬件級備份:用冗余的硬件來保證系統(tǒng)的連續(xù)運行,比如雙機容錯、硬盤鏡像等方式。如果主硬件損壞,后備硬件能夠立刻接替其工作。
-
軟件級備份:將系統(tǒng)數(shù)據(jù)保存到其他可以移動的介質(zhì)上,如磁帶、軟盤、光盤等。當系統(tǒng)出現(xiàn)故障后,可以將系統(tǒng)恢復到備份時的狀態(tài)。本文主要討論的是數(shù)據(jù)庫的軟件級備份。
IBM的DB2數(shù)據(jù)庫早已在世界范圍贏得非常好的信譽,是受到廣大用戶青睞的數(shù)據(jù)庫系統(tǒng)之一。本文討論的是 DB2 5.5 for AIX 數(shù)據(jù)庫系統(tǒng)的備份與恢復。
一、DB2數(shù)據(jù)庫的備份
DB2數(shù)據(jù)庫可以備份整個數(shù)據(jù)庫,也可以備份其中的一個或多個表空間;可以在應用連接到數(shù)據(jù)庫時和事務(wù)正在處理時進行備份(這稱為聯(lián)機備份),也可以在沒有任何應用連接到數(shù)據(jù)庫時進行備份(這稱為脫機備份)。(見表一)
DB2數(shù)據(jù)庫使用命令BACKUP來備份。BACKUP命令需要SYSADM,SYSCTRL或SYSMAINT的權(quán)限,其命令語法為:
BACKUP DATABASE 數(shù)據(jù)庫別名 TO 介質(zhì)名
或者
BACKUP DATABASE 數(shù)據(jù)庫別名 TABLESPACE 表空間名 [ONLINE} TO 介質(zhì)名
其中介質(zhì)名一般指定為介質(zhì)的絕對路徑,在 AIX 中不回轉(zhuǎn)的磁帶機設(shè)備名為 /dev/rmt0,回轉(zhuǎn)的磁帶機設(shè)備名為 /dev/rmt0.n 。也可將數(shù)據(jù)備份在硬盤上,介質(zhì)名即為其絕對路徑。BACKUP命令在指定的介質(zhì)上生成一個或多個備份文件,以下顯示了在 AIX 4.3 for RS/6000 上生成的文件名結(jié)構(gòu):
以下是 BACKUP 命令的一些例子:
(1)此例子是在指定的服務(wù)器目錄 /backup/mydb 下給 mydb 數(shù)據(jù)庫創(chuàng)建一個完整的備份:
BACKUP DATABASE mydb TO /backup/mydb
(2)此例子是給 mydb 數(shù)據(jù)庫中指定的表空間 myspace1 進行聯(lián)機備份,在進行備份時,應用可繼續(xù)更新數(shù)據(jù)庫:
BACKUP DATABASE mydb TABLESPACE myspace1 ONLINE TO /backup/mydb
表一 數(shù)據(jù)庫能否進行向前恢復帶來的影響
如果不允許進行向前恢復 |
如果允許進行向前恢復 |
在發(fā)生失敗后,可以把數(shù)據(jù)庫恢復到失敗前與最后一次事務(wù)一致的狀態(tài)。
|
同樣,也支持恢復到與最后一次事務(wù)一致的狀態(tài)。
|
可以把數(shù)據(jù)庫恢復到任何有效的備份狀態(tài),但是不能重新執(zhí)行發(fā)生在備份之后的事務(wù)。
|
可以把數(shù)據(jù)庫恢復到任何有效的備份狀態(tài),并且可以重新執(zhí)行從發(fā)生失敗到當前為止提交的事務(wù)。
|
只能在沒有任何應用連接到數(shù)據(jù)庫時進行備份(這稱為脫機備份)。
|
可以在應用連接到數(shù)據(jù)庫時和事務(wù)正在處理時進行備份(這稱為聯(lián)機備份)。同樣支持脫機備份。
|
每一個備份都必須包含整個數(shù)據(jù)庫的當前狀態(tài)。
|
一個備份可能包含整個數(shù)據(jù)庫的當前狀態(tài),或者是一個或多個表空間。數(shù)據(jù)庫的表空間可以單獨地備份和恢復。
|