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

DB2 分區資料庫前滾操作實戰:歸檔日誌複製與 OVERFLOW LOG PATH 跨分區指定

     編輯:DB2 教學

前滾必要性

線上備份還原後,資料庫處於 **Roll-forward pending** 狀態。新資料庫 SAMPNEW 日誌路徑無源 SAMPLE 歸檔日誌,必須手動複製並用 OVERFLOW LOG PATH 指定。

步驟 1:查詢源資料庫各分區日誌路徑


db2_all "db2 GET DB CFG FOR SAMPLE" | grep "Path to log files"
# 輸出範例:
# Path to log files = /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/
# Path to log files = /home/db2inst1/db2inst1/NODE0001/SQL00001/SQLOGDIR/
# ...

步驟 2:複製歸檔日誌至統一目標路徑

建議結構:/sampnew/NODExxxx/SQL00001/SQLOGDIR/,每分區獨立子目錄。


mkdir -p /sampnew/NODE0000/SQL00001/SQLOGDIR
cp /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/S*.LOG /sampnew/NODE0000/SQL00001/SQLOGDIR/
# 其餘分區同理

步驟 3:編目分區發起跨分區前滾


db2 "ROLLFORWARD DB SAMPNEW TO END OF LOGS AND COMPLETE OVERFLOW LOG PATH (
  /sampnew/NODE0000/SQL00001/SQLOGDIR,
  /sampnew/NODE0001/SQL00001/SQLOGDIR ON DBPARTITIONNUM 1,
  /sampnew/NODE0002/SQL00001/SQLOGDIR ON DBPARTITIONNUM 2,
  /sampnew/NODE0003/SQL00001/SQLOGDIR ON DBPARTITIONNUM 3
)"

關鍵規則:分區 0 不加 ON 子句

  • 分區 0 (編目分區) 路徑直接列在第一位,**不加** ON DBPARTITIONNUM 0
  • 加上會報 SQL0104N An unexpected token "on" ...
  • 其餘分區**必須**加 ON DBPARTITIONNUM N 對應分區號

驗證完成


db2 "ROLLFORWARD DB SAMPNEW QUERY STATUS"
# 輸出含 "Roll-forward status: Database not in roll-forward pending state" 即成功
db2 "CONNECT TO SAMPNEW"
db2 "SELECT COUNT(*) FROM KEY_TABLE"  # 業務驗證

自動化建議

  • 備份腳本同步輸出日誌路徑清單 (JSON/CSV),還原腳本讀取自動構建 OVERFLOW 參數
  • 使用 db2adutl 管理映像檔與日誌檔生命週期
  • 定期演練全流程還原 + 前滾,驗證 RTO/RPO
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved