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

DB2 在線備份實戰:啟用日誌保留、聯機備份、還原前滾全流程

     編輯:DB2 教學

在線備份核心前提:啟用日誌保留 (Log Retain)

在線備份要求資料庫處於 **可恢復 (Recoverable)** 狀態,即啟用 LOGRETAIN 或 USEREXIT (归档日誌)。否則僅能離線備份。

完整操作流程

1. 啟用日誌保留 (需離線生效)


db2 update db cfg for TestDB using LOGRETAIN ON
-- 必須執行一次離線完全備份使配置生效並脫離「備份暫掛」狀態
db2 backup db TestDB to D:\DB2_Train

2. 模擬業務寫入 (產生日誌)


db2 connect to TestDB
db2 "insert into T1 values (2, '在線備份測試')"
db2 "select * from T1"

3. 執行聯機備份


db2 backup db TestDB online to D:\DB2_Train

備份期間資料庫**完全可讀寫**,備份映像包含開始時刻的一致性快照 + 備份期間產生的活動日誌範圍。

4. 備份活動日誌 (關鍵!)

聯機備份**不包含**完整日誌檔案。必須單獨備份 LOGARCHMETH1 指定路徑下的日誌檔,或設定 INCLUDE LOGS (DB2 10.1+,將所需日誌直接打包進備份映像)。


-- 查詢日誌路徑
db2 get db cfg for TestDB | findstr LOGPATH
-- 手動複製該路徑下所有 .log 檔案至備份目錄 D:\DB2_Train\SQLOGDIR\

5. 模擬災難:刪除資料庫


db2 drop db TestDB

6. 還原資料庫


db2 restore db TestDB from D:\DB2_Train taken at 20240115150000

7. 連接失敗:ROLL-FORWARD PENDING 狀態


db2 connect to TestDB
-- SQL1117N: 數據庫處於 ROLL-FORWARD PENDING 狀態,無法連接。

**原因**:聯機備份還原後,資料庫處於不一致狀態,**必須前滾日誌**至一致性點才能使用。

8. 前滾資料庫 (Rollforward)


-- 方式 1: 前滾至日誌末尾並完成 (停止前滾)
db2 "rollforward db TestDB to end of logs and complete 
     overflow log path ('D:\DB2_Train\SQLOGDIR')"

-- 方式 2: 前滾至特定時間點 (PITR)
db2 "rollforward db TestDB to 2024-01-15-15.30.00 and complete 
     overflow log path ('D:\DB2_Train\SQLOGDIR')"

關鍵參數:

  • TO END OF LOGS:應用所有可用日誌。
  • AND COMPLETE:結束前滾狀態,資料庫可用。
  • OVERFLOW LOG PATH:指定**備份日誌檔案所在路徑** (此處為手動複製的 SQLOGDIR),前滾過程會從此讀取日誌。

9. 最終驗證


db2 connect to TestDB
db2 "select * from T1"
-- 應包含: (1, '離線備份測試'), (2, '在線備份測試')

在線 vs 離線備份關鍵差異

維度離線備份在線備份
資料庫狀態離線 (無連線)在線 (可讀寫)
日誌需求無 (循環日誌即可)**必須啟用 LOGRETAIN/USEREXIT**
還原後狀態立即可用**ROLL-FORWARD PENDING,需前滾**
備份內容資料頁面 + 配置資料頁面 + 配置 + 備份期間日誌範圍
日誌管理無需額外備份日誌**必須單獨備份/包含日誌 (INCLUDE LOGS)**
RPO (資料損失容忍)備份點後所有資料**可達零資料損失 (配合前滾至日誌末尾)**

最佳實務

  1. 生產核心庫**強制在線備份**,RPO=0。
  2. 設定 LOGARCHMETH1 = DISK:/db2archive 自動归档日誌,配合 BACKUP DB ... INCLUDE LOGS 簡化操作。
  3. 監控備份狀態:db2pd -db TestDB -backup / LIST HISTORY BACKUP ALL FOR TestDB。
  4. 定期演練 **PITR (時間點恢復)**:ROLLFORWARD TO AND COMPLETE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved