一、設置歸檔參數:
1、db2 update db cfg for using mirrorlogpath /home/db2inst1/mirror_log/ //mirror log
2、db2 get db cfg for //確認是否成功
3、db2 update db cfg for using userexit on //啟用用戶出口
4、db2 update db cfg for using logretain on //啟用歸檔日志
5、db2 update db cfg for using trackmod on //啟用增量備份功能
6、db2stop force
7、db2start
8、db2 backup db to /home/db2inst1/off_back //開始上面參數後,數據庫處於backup pending狀態,要求做數據庫的離線備份,否則會提示SQL1116N錯誤。
二、備份在線數據庫
9、db2 backup db online to /home/db2inst1/on_back/ //在線備份
10、db2 backup db online incremental to /home/db2inst1/on_back/ //在線做增量備份
11、db2 list history backup all for //查看備份記錄
12、db2 get db cfg for //查看log所在位置,cp到一個安全目錄,供rollforward使用。
13、db2stop force;db2start;db2 drop db //手工drop數據庫,模擬災難恢復的情況
三、恢復在線數據庫
14、db2ckrst -d -t 20070608032820 -r database //幫助工具提示恢復
15、db2 restore db incremental from /home/db2inst1/on_back taken at 20070608032820 //恢復數據文件
先恢復完全備份,然後在恢復增量備份,不能自動尋找完全備份文件。
16、db2 rollforward database to end of logs and complete overflow log path '(/home/db2inst1/log)' //前滾日志
有一點不認同:“先恢復完全備份,然後在恢復增量備份”
對於增量恢復,你的做法正好反了,你這樣做的話,會收到SQL2574N的錯誤信息。
在db2ckrst裡面已經清楚的告訴你恢復的順序。
下面是測試備份鏡像中包日志的備份和恢復的步驟:
注:/home/db2inst1/on_back/ #為備份文件位置
/home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
10、 db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
20、 db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
21、 db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
30、 db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
40、 db2 rollforward database to end of logs and complete //回滾log日志
在“10”中已把數據庫drop了,“20”中如何做online backup呢?
注:/home/db2inst1/on_back/ #為備份文件位置
/home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
10、 db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
20、 db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
30、db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
40、 db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
50、 db2 rollforward database to end of logs and complete //回滾log日志