1. 程式人生 > >DB2資料庫備份和恢復

DB2資料庫備份和恢復

資料庫備份(離線):
C:\Documents and Settings\quanlun>db2 backup db sample to 'E:\bk\test'
備份成功。此備份映像的時間戳記是:20101207095857

C:\Documents and Settings\quanlun>db2 drop db sample
DB20000I  DROP DATABASE 命令成功完成。
資料庫恢復:
C:\Documents and Settings\quanlun>db2 restore db sample from 'E:\bk\test' taken at 20101207095857 without rolling forward
DB20000I  RESTORE DATABASE 命令成功完成。
注意:taken at 20101207095857 當中的時間戳應當是:
C:\Documents and Settings\quanlun>db2 backup db sample to 'E:\bk\test'

備份成功。此備份映像的時間戳記是:20101207095857
當中的時間戳值,否則恢復會丟擲:
SQL2542N  根據所提供的源資料庫別名 "SAMPLE" 和時間戳記
"20101207095908",找不到與資料庫映像檔案相匹配的檔案。

注:
資料庫的恢復分為:版本恢復和前滾恢復。
要使用前滾恢復方法,必須已建立了資料庫的備份,並且已將日誌歸檔。
此時資料庫將被複原到建立離線備份映像時的狀態。
如果沒有對復原資料庫操作指定without rolling forward選項,則該資料庫在復原操作結束時處於
前滾暫掛狀態。此時可進行前滾恢復。


表空間級別的備份/恢復操作要求資料庫處於歸檔日誌和啟用增量備份模式下。
首先開啟一下支援線上備份的資料庫配置引數: 
db2 update db cfg for sample using userexit on 啟用使用者出口 
db2 update db cfg for sample using logretain on 啟用歸檔日誌 
db2 update db cfg for sample using trackmod on 啟用增量備份功能 
由此得知:
表空間備份和恢復只能夠使用線上。

例如:
C:\Documents and Settings\quanlun>db2 backup db sample tablespace(syscatspace,userspace1) to 'E:\bk\
test'
SQL2421N  因為未啟用前滾恢復,所以不允許表空間級備份。

注:
在開啟了支援線上備份的資料庫配置引數:
db2 update db cfg for sample using userexit on 啟用使用者出口 
db2 update db cfg for sample using logretain on 啟用歸檔日誌 
db2 update db cfg for sample using trackmod on 啟用增量備份功能 
之後資料庫處於backup pending狀態,要求做資料庫的離線全備份。

C:\Documents and Settings\quanlun>db2 backup db sample to 'E:\bk\test'

備份成功。此備份映像的時間戳記是:20101207103724
而後在做線上備份:
C:\Documents and Settings\quanlun>db2 backup db sample online to 'E:\bk\test'

備份成功。此備份映像的時間戳記是:20101207103847

基於聯機全量備份進行恢復
db2 restore db sample from $BAKPATH taken at 20101116145227 logtarget $OVERFLOWLOGPATH
db2 rollforward db sample to end of logs and stop
備註:時間點可以指定為備份時間點之後的任意時間點


db2 restore db sample from 'E:\bk\test' taken at 20101207133115 without rolling forward


db2 list history backup all for sample     //列出備份情況