啟用歸檔日誌(LOGARCHMETH1 != OFF)後,資料庫進入可恢復狀態,支援線上備份、前滾恢復、崩潰恢復。日誌檔滿時自動歸檔至指定目的地,歸檔失敗由 ARCHRETRYDELAY(重試間隔)與 NUMARCHRETRY(重試次數)控制,最終可轉向 FAILARCHPATH 故障轉移目錄。
| 組合 | LOGARCHMETH1 | LOGARCHMETH2 | 歸檔行為 | 運維重點 |
|---|---|---|---|---|
| 1 | LOGRETAIN | OFF | 歸檔至資料庫日誌目錄(循環覆寫) | 需人工搬移/刪除舊日誌,釋放空間供新日誌複用;否則磁碟寫滿導致資料庫掛起 |
| 2 | USEREXIT | OFF | 委派給自訂 User Exit 程式處理 | 可實現加密、異地傳輸、分級儲存等複雜策略;開發/維護成本高 |
| 3 | DISK:/path/primary | OFF | 自動歸檔至單一磁碟路徑 | 日誌目錄僅保留 LOGPRIMARY + LOGSECOND 個作用中日誌,歸檔檔案集中於目標路徑,無人值守 |
| 4 | DISK:/path/primary | DISK:/path/secondary | 自動雙路歸檔(兩份副本) | 高可用首選;主備路徑建議跨磁碟/機架/機房;同樣僅保留作用中日誌於本地 |
| 5 | TSM | DISK:/path/local | TSM 離線長期保留 + 本地磁碟近線快速還原 | 推薦生產環境:TSM 滿足合規留存,本地磁碟支援分鐘級 PITR |
修改 LOGARCHMETH1/2 後,資料庫立即進入 Backup Pending 狀態(db2 get db cfg | grep -i backup pending 顯示 YES)。必須完成一次離線完整備份,資料庫才轉入正常 Recovery 模式 並可線上運作。
# 修改參數
db2 update db cfg for MYDB using LOGARCHMETH1 'DISK:/archive/primary'
db2 update db cfg for MYDB using LOGARCHMETH2 'DISK:/archive/secondary'
# 強制離線備份(消除 Backup Pending)
db2 backup database MYDB to /backup
# 驗證狀態
db2 get db cfg for MYDB show detail | grep -i "backup pending"
# 應顯示 NO
ARCHRETRYDELAY 秒(預設 30)。NUMARCHRETRY 次(預設 5)。FAILARCHPATH 指定的故障轉移目錄。建議:生產環境設定 ARCHRETRYDELAY=60、NUMARCHRETRY=10、FAILARCHPATH=/archive/failover,並對歸檔路徑磁碟使用率設定告警(>80% 觸發)。
LOGARCHMETH1(建議組合 4 或 5)。db2 list history backup all for MYDB 顯示最新備份狀態為 Success。掌握參數組合語義、Backup Pending 強制備份邏輯、雙路/TSM 混合歸檔架構,即可建構符合 RPO=0、RTO<分鐘的企業級 DB2 保護體系。