| 模式 | 命令關鍵字 | 前提條件 | 適用場景 |
|---|---|---|---|
| 離線完整 | BACKUP DATABASE | 無連線、循環/歸檔日誌均可 | 維護窗口、初始化備用庫 |
| 線上完整 | BACKUP DATABASE ONLINE | 啟用 LOGRETAIN=ON USEREXIT=ON TRACKMOD=ON | 7×24 系統、最小化停機 |
| 線上增量 | BACKUP DATABASE ONLINE INCREMENTAL | 同上 + 已有完整備份基準 | 每日/每小時變更量小 |
| 線上增量差異 | BACKUP DATABASE ONLINE INCREMENTAL DELTA | 同上 | 僅備份上次任意備份後變更 (對應 Oracle 增量) |
關鍵差異:INCREMENTAL (累積) = 含上次完整備份後所有變更;DELTA (差異) = 僅含上次任意備份後變更。恢復時 INCREMENTAL 只需最後一份,DELTA 需逐份應用。
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
設定後資料庫進入 **Backup Pending** 狀態,**必須先做一次離線完整備份** 才能進行線上備份。
# 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
db2 backup db sample online use tsm
# 驗證同上
db2 backup db sample online incremental use tsm
db2 backup db sample online incremental delta use tsm
db2 drop db sampledb2 restore db sample history file use tsm taken at 20240102223107 buffer 100db2ckrst -d sample -t 20240101224424 -r databasedb2 restore db sample incremental use tsm taken at 20240101224424 buffer 100db2 rollforward db sample to 2024-01-12-13.27.25.000000 on all nodes and stopTABLESPACE (ts_name) 子句,同樣需歸檔日誌 + TRACKMOD。db2ckrst 建議順序依次恢復,最後再 ROLLFORWARD。db2_all),前滾僅在目錄節點執行 ON ALL NODES。