DB2 交易日誌是資料庫復原的核心,分為循環日誌與歸檔日誌兩大模式。本文系統整理兩種模式特性、關鍵配置參數(LOGFILSIZ/LOGPRIMARY/LOGSECOND/LOGARCHMETH1)、模式切換指令、空間規劃公式,並深入解析備份檔與日誌檔在還原/前滾恢復中的關鍵關係,助您建立可靠的災難復原體系。
| 特性 | 循環日誌 | 歸檔日誌 |
|---|---|---|
| 日誌重用 | 自動覆寫舊日誌(循環使用) | 活動日誌不可刪;已歸檔日誌可手動/自動管理 |
| 時間點復原 | 不支援(僅能還原至備份時間點) | 支援(還原備份 + 前滾日誌至任意時間點) |
| 適用場景 | 開發/測試、資料可重載、無時間點復原需求 | 生產環境、合規要求、需任意時間點復原 |
| 刪除風險 | 刪除日誌檔 → 資料庫損壞,需 IBM 介入或重建 | 刪除活動日誌同樣致命;刪除已歸檔日誌將失去對應區間的前滾能力 |
db2 get db cfg for <dbname> | grep -i log
| 參數 | 說明 | 範例值 |
|---|---|---|
LOGFILSIZ | 單一日誌檔大小(4KB 頁數) | 10000 (≈ 40MB) |
LOGPRIMARY | 主要日誌檔數量(預先配置) | 20 |
LOGSECOND | 次要日誌檔數量(動態擴充上限) | 10 |
NEWLOGPATH | 變更日誌路徑(下次啟動生效) | /data1/instwip/ |
LOGARCHMETH1 | 歸檔方式(OFF=循環,DISK/TSM/VENDOR=歸檔) | DISK:/archive |
FAILARCHPATH | 歸檔失敗備用路徑 | /archive_fail |
主要日誌空間 = LOGFILSIZ × LOGPRIMARY × 4KB
最大日誌空間 = LOGFILSIZ × (LOGPRIMARY + LOGSECOND) × 4KB
db2 update db cfg for <dbname> using LOGFILSIZ 20000
db2 update db cfg for <dbname> using LOGPRIMARY 30
db2 update db cfg for <dbname> using LOGSECOND 20
db2 update db cfg for <dbname> using LOGARCHMETH1 'DISK:/db2archive'
db2 update db cfg for <dbname> using FAILARCHPATH '/db2archive_fail'
LOGARCHMETH1 指定歸檔目的地(DISK/TSM/VENDOR)。FAILARCHPATH 防止歸檔掛點失效。db2 archive log for db <dbname>。db2 update db cfg for <dbname> using LOGARCHMETH1 OFF
修改後需重啟資料庫生效。
INCLUDE LOGS),否則還原無法完成、更遑論前滾。db2 restore db <dbname> from <備份路徑> taken at <時間戳>
db2 rollforward db <dbname> to <目標時間點> using utc time and complete
db2pd -logs 觀察日誌使用率、歸檔滯後狀況。日誌模式選擇決定了資料庫的復原能力上限。生產環境請務必:歸檔模式 + 完整備份含日誌 + 歸檔日誌完整保留 + 定期演練前滾,才能在災難發生時從容應對。