首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 備份恢復全攻略:離線/在線/增量/Delta 多模式操作手冊與實戰避坑

     編輯:DB2 教學

備份策略矩陣:根據 RPO/RTO 選擇模式

模式業務中斷日誌需求恢復粒度典型場景
離線全備是 (獨佔)循環即可備份時間點開發/測試、小數據庫、維護窗口充足
在線全備否歸檔日誌 (LOGRETAIN=ON)備份結束點 + 前滾7×24 生產、大數據庫
在線增量否歸檔 + TRACKMOD=ON上次全備後變更日備份窗口短、變更率低
在線 Delta否歸檔 + TRACKMOD=ON上次任意備份後變更變更率高、需最小備份窗口

前置配置:啟用在線/增量備份三大參數

db2 update db cfg for SAMPLE using USEREXIT ON    # 用戶出口程序 (TSM/第三方)
db2 update db cfg for SAMPLE using LOGRETAIN ON   # 歸檔日誌
db2 update db cfg for SAMPLE using TRACKMOD ON    # 修改頁跟蹤 (增量/Delta 必須)
-- 參數生效後庫處於 BACKUP PENDING,必須先做一次離線全備

分區環境: 每個分區節點分別執行上述配置與備份命令。

操作命令速查 (以 TSM 為介質)

1. 離線全備份

# 1. 確認無連接
db2 list applications for db sample
# 2. 強制斷開並重啟
db2stop force && db2start
# 3. 備份 (主節點優先,再其他節點)
db2 backup db sample USE TSM
# 4. 驗證
db2 list history backup all for sample
db2adutl query db sample

2. 在線全備份

db2 backup db sample ONLINE USE TSM
# 返回時間戳 20240115103000

3. 在線增量備份

db2 backup db sample ONLINE INCREMENTAL USE TSM
# 僅備份上次全備後修改頁

4. 在線 Delta 備份

db2 backup db sample ONLINE INCREMENTAL DELTA USE TSM
# 僅備份上次任意備份 (全/增/Delta) 後修改頁

類比 Oracle: DB2 INCREMENTAL ≈ Oracle Cumulative (Level 1);DB2 DELTA ≈ Oracle Differential (Level 1 非累積)。

災難恢復標準流程 (模擬庫被 DROP)

Step 1: 恢復歷史文件 (最新備份時間戳)

db2 restore db sample HISTORY FILE USE TSM TAKEN AT 20240115103000 BUFFER 100

Step 2: 使用恢復建議工具 db2ckrst

db2ckrst -d sample -t 20240115103000 -r database
# 輸出建議恢復序列,例如:
# 1. RESTORE DATABASE ... INCREMENTAL TAKEN AT 20240115103000
# 2. RESTORE DATABASE ... INCREMENTAL TAKEN AT 20240115140000
# 3. ROLLFORWARD DATABASE ... TO END OF LOGS AND COMPLETE

Step 3: 按序執行版本恢復 (主節點優先)

db2 restore db sample INCREMENTAL USE TSM TAKEN AT 20240115103000 BUFFER 100
db2 restore db sample INCREMENTAL USE TSM TAKEN AT 20240115140000 BUFFER 100
# ... 依序應用所有增量/Delta 鏡像

Step 4: 前滾日誌至目標時間點 (協調節點執行)

# 完全恢復
db2 rollforward db sample TO END OF LOGS AND COMPLETE ON ALL NODES

# 時間點恢復 (PITR)
db2 rollforward db sample TO 2024-01-15-14.30.00.000000 ON ALL NODES AND STOP
db2 rollforward db sample COMPLETE ON ALL NODES  # 確認提交

表空間級備份恢復 (需歸檔+TRACKMOD)

# 備份指定表空間
db2 backup db sample TABLESPACE (SYSCATSPACE, USERSPACE1) ONLINE USE TSM

# 恢復指定表空間
db2 restore db sample TABLESPACE (USERSPACE1) ONLINE FROM /backup/path TAKEN AT 20240115103000
db2 rollforward db sample TO END OF LOGS AND COMPLETE TABLESPACE (USERSPACE1) ON ALL NODES

關鍵避坑指南

  1. 分區恢復順序: 必須先恢復目錄分區 (分區 0),再恢復其他分區,否則元數據不一致導致掛起。
  2. 日誌鏈完整性: 缺失任意歸檔日誌將導致前滾失敗。建議 TSM 管理類設置無限期保留,或配置 LOGARCHMETH1/2 雙路歸檔。
  3. BUFFER 參數調優: 恢復命令 BUFFER 100 (4KB 頁 × 100 = 400KB/次),大內存機器可調大至 1000+ 提升吞吐。
  4. 增量/Delta 混用陷阱: 若混用 INCREMENTAL 和 DELTA,db2ckrst 建議序列可能包含兩類,必須嚴格按序應用,不可跳過。
  5. 在線備份一致性: ONLINE 備份期間允許寫入,恢復時依賴歸檔日誌補全備份期間的變更,務必確保日誌未被覆蓋/刪除。
  6. 定期演練: 季度必須在測試環境全流程演練 (備份→Drop→恢復→驗證),發現介質損壞、腳本錯誤、權限缺失等隱患。

監控與自動化建議

  • 腳本化備份 + cron/Windows Task 排程,輸出 JSON 狀態供監控平台採集
  • 關鍵指標告警:備份耗時異常、備份大小突變、歸檔日誌積壓、db2adutl query 失敗
  • 保留策略:全備保留 30 天,增量/Delta 保留 7 天,配合 TSM 管理類自動過期

結語

DB2 備份恢復體系成熟完善,核心在於「配置正確、序列嚴格、演練常態化」。將上述流程固化為可執行 Runbook,納入變更管理與審計合規,才能在真正災難來臨時實現「有備無患」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved