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

DB2 9 表空間備份恢復實戰:REBUILD 實現無全備份的極速重建

     編輯:DB2 教學

傳統恢復痛點與 DB2 9 突破

傳統恢復需全庫備份 + 日誌前滾。大數據庫全備份/恢復耗時極長。DB2 9 引入 RESTORE DATABASE ... REBUILD,僅憑表空間級備份即可重建整庫,甚至可按重要性選擇性恢復關鍵數據,大幅縮短 RTO。

場景:無全備份、僅有不同時點表空間備份

數據庫 TEST(歸檔日誌),磁盤損壞。日誌完好(獨立磁盤/鏡像)。手頭表空間備份:
• SYSCATSPACE + USERSPACE1 @ T1 (20060515135047)
• USERSPACE2 + USERSPACE3 @ T2 (20060516135136)
• USERSPACE3 @ T3 (20060517135208) — 最新

直接 RESTORE DB TEST TAKEN AT T3 報錯 SQL2560N:目標數據庫與表空間備份源不匹配,傳統命令不支持表空間級備份重建整庫。

三步驟 REBUILD 恢復流程

步驟 1:RESTORE ... REBUILD WITH ALL TABLESPACES

db2 restore db test rebuild with all tablespaces in database taken at 20060517135208
  • 選最新備份(T3)作「目標映像」,含最新表空間備份、數據庫配置、日誌序列等元數據。
  • ALL TABLESPACES 指示 DB2 自動尋找歷史記錄中其他表空間備份(T1 恢復 SYSCATSPACE/USERSPACE1,T2 恢復 USERSPACE2,T3 已恢復 USERSPACE3 跳過)。
  • 所有表空間置於 ROLL-FORWARD 狀態(歷史記錄顯示 WITH RF 标志)。
  • 所有備份映像須位於歷史記錄指示路徑,否則報找不到錯誤。

步驟 2:ROLLFORWARD TO END OF LOGS

db2 rollforward db test to end of logs
  • 利用日誌將不同時點恢復的表空間前滾至同一一致性時間點。
  • 需備份時間跨度內(T1 到 T3)所有日誌文件存在於 LOGPATH,否則無法同步。若日誌已移動,用 OVERFLOW LOG PATH 指定新位置。

步驟 3:ROLLFORWARD STOP

db2 rollforward db test stop
  • 結束前滾狀態,數據庫轉為 NORMAL 狀態,可正常使用。

關鍵點總結

  • 目標映像選擇:通常選最新表空間備份,但任何備份(全量/表空間/增量/在線/離線)均可。
  • 日誌完整性:從最早備份時間點到最新備份時間點的日誌必須齊全,支撐跨時間點同步。
  • 歷史記錄作用:LIST HISTORY 記錄 REBUILD 過程中自動應用的各備份映像(EID 7-10),可審計驗證。
  • 優勢:無需全庫備份;核心表空間可更頻繁備份,非核心降低頻率,優化備份窗口與存儲成本。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved