上一篇介紹了完整備份的重導向還原。但若災難發生時,完整備份無法涵蓋到故障前一刻的資料,且資料庫必須在另一台伺服器恢復,該如何處理?
前提:資料庫啟用前滾恢復(logretain=ON)與增量備份(trackmod=ON),備份集(完整、線上增量、線上增量 Delta)與日誌檔已備份至遠端機器。此時可執行重導向增量還原,接著執行前滾恢復,將資料庫恢復至災難發生前的狀態。
還原時指定 INCREMENTAL AUTOMATIC,DB2 會自動套用完整備份與所需增量映像,無需逐一下令。
場景:來源實例 PROD,目標實例 MYINST,使用 SAMPLE 資料庫,位於 D 槽。
set DB2INSTANCE=PROD
db2start
db2sampl
db2 update db cfg for sample using logretain on
db2 update db cfg for sample using trackmod on
db2 backup db sample
完整備份時間戳:20021022205203。
db2 connect to sample
db2 insert into sales values ('10/21/2002','GOUNOT','Ontario-South',3)
db2 insert into sales values ('10/23/2002','GOUNOT','Ontario-North',7)
db2 insert into sales values ('10/24/2002','GOUNOT','Quebec',4)
db2 insert into sales values ('10/25/2002','GOUNOT','Manitoba',2)
db2 backup db sample online incremental
增量備份時間戳:20021022205237。
db2 connect to sample
db2 insert into sales values ('10/28/2002','LEE','Ontario-South',5)
db2 insert into sales values ('10/28/2002','LEE','Ontario-North',1)
db2 backup db sample online incremental delta
Delta 備份時間戳:20021022205302。此時備份目錄含三個映像檔。
db2 connect to sample
db2 insert into sales values ('10/31/2002','LUCCHESSI','Ontario-South',9)
db2 insert into sales values ('10/31/2002','LUCCHESSI','Quebec',2)
db2 insert into sales values ('10/31/2002','LUCCHESSI','Manitoba',7)
db2 connect reset
set DB2INSTANCE=MYINST
db2start
db2 restore db sample incremental automatic from d taken at 20021022205302 to d redirect
INCREMENTAL AUTOMATIC 讓 DB2 自動套用完整、增量、Delta 三個映像。
db2 set tablespace containers for 0 using (path 'd:\ts0con1')
db2 set tablespace containers for 1 using (path 'd:\ts1con1')
db2 set tablespace containers for 2 using (path 'd:\ts2con1')
db2 restore db sample continue
資料庫進入前滾掛起狀態,必須前滾日誌才能存取。
db2 get db cfg for sample
# 記下 logpath 路徑
copy PROD\NODE0000\SQL00001\SQLOGDIR\*.* D:\MYINST\NODE0000\SQL00002\SQLOGDIR
db2 rollforward db sample to end of logs and stop
db2 list db directory
db2 connect to sample
db2 list tablespace containers for 0
db2 list tablespace containers for 1
db2 list tablespace containers for 2
db2 select * from sales
db2 connect reset
db2 terminate
db2stop
set DB2INSTANCE=PROD
db2stop
logretain 與 trackmod,並定期備份日誌檔至異地。INCREMENTAL AUTOMATIC 簡化多映像套用流程。logpath。TO END OF LOGS AND STOP 確保應用所有已歸檔與線上日誌。重導向增量還原結合前滾恢復,是 DB2 異地災難恢復的標準方案。熟練掌握完整→增量→Delta 備份鏈與日誌管理,才能在關鍵時刻將資料庫精準恢復至故障前一刻,將資料損失降至最低。