淺談DB2數據庫的備份與恢復(上)
2024-09-06 23:57:58
供稿:網友
隨著銀行業的不斷發展壯大,計算機網絡和數據庫的應用越來越廣泛,其中數據庫,特別是大型數據庫的安全問題,已得到廣大廣大數據庫管理員的重視。為了防止數據的意外丟失或損壞,必須對數據采取有效的備份手段。
所謂數據備份,就是保留一套備用系統,當運行系統出現故障時,能夠以最小的時間恢復原來的數據。數據庫的備份,可以是整個數據庫的拷貝,也可以是其中一部分數據的拷貝(一個或多個表空間)。數據備份一般有兩個層次:
硬件級備份:用冗余的硬件來保證系統的連續運行,比如雙機容錯、硬盤鏡像等方式。如果主硬件損壞,后備硬件能夠立刻接替其工作。
軟件級備份:將系統數據保存到其他可以移動的介質上,如磁帶、軟盤、光盤等。當系統出現故障后,可以將系統恢復到備份時的狀態。本文主要討論的是數據庫的軟件級備份。
ibm的db2數據庫早已在世界范圍贏得非常好的信譽,是受到廣大用戶青睞的數據庫系統之一。本文討論的是 db2 5.5 for aix 數據庫系統的備份與恢復。
一、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
表一 數據庫能否進行向前恢復帶來的影響
如果不允許進行向前恢復如果允許進行向前恢復
在發生失敗后,可以把數據庫恢復到失敗前與最后一次事務一致的狀態。
同樣,也支持恢復到與最后一次事務一致的狀態。
可以把數據庫恢復到任何有效的備份狀態,但是不能重新執行發生在備份之后的事務。
可以把數據庫恢復到任何有效的備份狀態,并且可以重新執行從發生失敗到當前為止提交的事務。
只能在沒有任何應用連接到數據庫時進行備份(這稱為脫機備份)。
可以在應用連接到數據庫時和事務正在處理時進行備份(這稱為聯機備份)。同樣支持脫機備份。
每一個備份都必須包含整個數據庫的當前狀態。
一個備份可能包含整個數據庫的當前狀態,或者是一個或多個表空間。數據庫的表空間可以單獨地備份和恢復。