一、備份(backup)數據庫
1、離線全備份
1)、首先確保沒有用戶使用DB2:
db2 list applications for db sample
2)、停掉數據庫並重新啟動,以便斷掉所有連接:
db2stop force
db2start
3)、執行備份命令:(使用TSM作為備份的介質)
db2 backup db sample use tsm
備份成功,將會返回一個時間戳。
4)、檢查備份成功:
db2 list history backup all for sample 可以看到多了這個備份的紀錄。
db2adutl query 命令也可以看到返回值。
5)、備注:
首先對主節點(catalog表空間在的節點)執行備份命令,再對另外的節點也做這個操作。
2、 在線備份:
1)、首先打開一下支持在線備份的數據庫配置參數:
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 啟用增量備份功能
(需要各個Node都分別做設置)
開啟這些參數后,數據庫處於backup pending狀態,要求做數據庫的離線全備份。做一下離線全備份,參考上面的命令。
2)、在線備份命令如下:
db2 backup db sample online use tsm
備份成功,返回一個時間戳。
3)、同樣可以用db2adutl 和db2 list history察看備份紀錄。
4)、備注:
同樣,對每個節點都做這個操作。
3、 在線增量備份
1)、在開啟了必須的三個參數的情況下,做增量備份:
db2 backup db sample online incremental use tsm
備份成功,返回一個時間戳。
2)、同樣可以用db2adutl 和db2 list history察看備份紀錄。
3)、還有一種delta的備份:
db2 backup db sample online incremental delta use tsm
這兩種備份的區別,類似Oracle Exports的Incremental和Cumulative方式,db2的incremental對應oracle的cumulative方式,而db2的delta方式則對應oracle的incremental方式。
4)、備注:
同樣,對每個節點都做這個操作。
二、恢復(RESTORE)數據庫
1、新建數據庫
在一般管理工具, 創建數據庫(別名要和原來的數據庫別名一致)。
2、恢復數據庫
1):斷開連接:將網絡斷開,切斷所有的客戶連接,如果不行,先重啟。(如果有客戶端連接到DB2服務器,恢復不行的,包括控制中心)
2):恢復離線備份:
設:
你的備份那個DB2文件在:C:\Temp
你的數據庫名稱:DBName
那么對應DB2的備份/恢復文件的格式是這樣的:
C:\Temp\DBName.0\DB2CTLSV\NODE0000\CATN0000\20090706\HHMMSS.001
備份時你只是指定了一個C:\Temp目錄,后面那么目錄為DB2備份時生成。
然后是它的文件名,一般格式是:HHMMSS.001,即:小時分鍾秒數.001,也就是說后面那個20020828是備份日期,文件名是備份時間。
好,清楚后,你就可以寫SQL命令進行恢復了
運行: Start->Program->IBM DB2->Command Center
然后:不要登陸,直接輸入下列命令:
以下為引用的內容:
RESTORE DATABASE NewDBName FROM C:\\Temp\\ TAKEN AT
20020919094932 TO D: INTO OldDBName WITH 2 BUFFERS BUFFER 1024
WITHOUT PROMPTING
你要改
NewDBName ==》你的新建數據庫名稱
C:\\TEMP\\ ==> 你備份DB2的目錄,像上面所說
20020919094932 ==> 一看你DB2的目錄和文件組合成這東東
D: ==> 新建的數據庫放在哪個盤上
OldDBName ==> 備份前那個數據庫叫什么
好了,CTRL+ENTER, 如果不行請檢查,如果再不行,請重啟,如果再不行,。。。阿門,上帝保佑你
3):實例
備份文件路徑:C:\Temp\ipmdemo.0\DB2CTLSV\NODE0000\CATN0000\20090622\164642.001
其中,備份日期:20090622 備份文件:164642.001
新建數據庫名:ipmdemo
數據庫文件時間戳: 20090622164642
恢復命令為:db2 restore database ipmdemo from C:\Temp taken at 20090622164642
3、恢復在線備份
1)、恢復。恢復命令為:db2 restore database DBName from C:\Temp taken at 20090622164642
2)、前滾。前滾命令為:db2 rollforward db DBName to end of logs(或者:控制中心->所有數據庫->dbname ->右鍵->前滾)
3)、停止前滾。停止前滾命令為:db2 rollforward db DBName stop(或者:控制中心->所有數據庫->dbname ->右鍵->停止前滾)
三、有關說明
1、恢復操作也有online和offline的,區別如同backup的操作。
2、按照表空間的備份和恢復類似,加子句TABLESPACE ( tablespace-name )即可。表空間級別的備份/恢復操作要求數據庫處於歸檔日志和啟用增量備份模式下。
3、恢復的例子中只做了版本恢復。若還有更新的全備份和增量備份的image,可以依次做恢復(注意使用db2ckrst的建議恢復次序和次數)后,再做roll forward。