全量備份耗時長、佔空間大,增量備份僅備份上次備份後變更的頁面,大幅縮減備份窗口。但增量備份鏈依賴完整的日誌鏈,還原需「全量備份 + 所有增量備份 + 日誌前滾」。本文提供經實測驗證的完整操作流程,涵蓋前置配置、備份執行、災難模擬、還原重建、前滾恢復、資料驗證全鏈路。
-- 1. 啟用歸檔日誌、用戶退出、修改追蹤
db2 update db cfg for TESTDB using LOGRETAIN ON USEREXIT ON TRACKMOD ON
-- 2. 參數生效需斷開所有連接(或重啟實例)
db2 force application all
-- 或 db2stop && db2start
-- 3. 建立基準全量離線備份(增量鏈起點)
db2 backup db TESTDB
-- 記錄時間戳,如:20070419144951
關鍵提醒: TRACKMOD ON 讓 DB2 追蹤修改頁面;LOGRETAIN ON 保留歸檔日誌;USEREXIT ON 允許自定義日誌歸檔程式(生產環境建議配合 TSM/NetBackup)。
務必在災難發生前,將歸檔日誌目錄(LOGARCHMETH1 或 USEREXIT 程式寫入路徑)備份至異地/異機。本例中為 C:\TESTDB.0\SQLOGDIR。日誌丟失 = 資料丟失 = 無法前滾到一致性點。
db2 connect to TESTDB
db2 "create table T1(C1 int)"
db2 "insert into T1 values (1)"
db2 commit
-- 線上增量備份(業務不中斷)
db2 backup db TESTDB online incremental
-- 記錄時間戳:20070419145112
db2 drop db TESTDB
-- 確認歸檔日誌已安全備份至 C:\TESTDB.0\SQLOGDIR
-- INCREMENTAL AUTOMATIC 讓 DB2 自動尋找並套用全量基準備份 + 增量備份
db2 restore db TESTDB incremental automatic from "C:" taken at 20070419145112
輸出提示: `SQL1117N 由於 ROLL-FORWARD PENDING,不能連接或激活資料庫` —— 此為預期狀態,資料庫處於「前滾暫掛」狀態,需繼續套用日誌。
-- 指定歸檔日誌路徑(OVERFLOW LOG PATH 參數)
db2 rollforward db TESTDB to end of logs and complete overflow log path ("C:\TESTDB.0\SQLOGDIR")
關鍵參數解析:
to end of logs:重放所有可用日誌,恢復至最新一致性點and complete:完成前滾,將資料庫從暫掛狀態轉為可用狀態overflow log path:指定歸檔日誌所在目錄(此處為異地備份路徑)成功標誌: `Rollforward status = Not pending`、`Last committed transaction = 2007-04-19-06.51.22`
db2 connect to TESTDB
db2 "select * from T1"
-- 預期輸出:C1 = 1,1 record selected
| 維度 | 建議 |
|---|---|
| 備份排程 | 每日 1 次全量(離線/線上)+ 每 1-4 小時 1 次增量;累積增量優於差異增量(還原更快) |
| 日誌管理 | LOGARCHMETH1 設定為 TSM/NFS/S3;啟用 FAILARCHPATH 容錯;監控日誌檔案系統使用率 < 80% |
| 還原演練 | 每季演練 1 次完整還原+前滾,驗證 RTO/RPO,更新操作手冊 |
| 並行備份/還原 | 大型庫使用 PARALLELISM n、WITH n BUFFERS、BUFFER 1024 加速 |
| 表空間級別備份 | 超大庫採用表空間增量備份,縮小備份粒度與還原範圍 |
| 加密與壓縮 | 備份啟用 COMPRESS ENCRYPT 節省空間滿足合規 |
TRACKMOD 生效前已做全量備份;檢查歷史檔 db2 list history backup all for TESTDBOVERFLOW LOG PATH 路徑正確、日誌檔案完整、權限足夠db2diag.log 確認是否需 rollforward ... complete 或 stopDB2 線上增量備份 + 還原增量鏈 + 前滾恢復,構成了企業級災難恢復的標準鐵三角。核心成功要素:參數正確啟用、基準全量備份存在、歸檔日誌異地完整保存、還原命令精確指定時間戳與日誌路徑。將此流程標準化、腳本化、演練常態化,才能在真正災難來臨時從容應對。