DB2 備份恢復在源端與目標端存儲路徑不一致時,必須啟用 重定向恢復 流程。本文基於一次真實生產環境異機還原實戰,將完整操作步驟、關鍵命令、狀態判讀與避坑要點系統化整理,供 DBA 參考實施。
DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT
參數解析:
DB2 LIST TABLESPACES
重點關注 State(狀態) 欄位中是否包含 0x2001100 並提示 「必須定義存儲器」。示例輸出:
| 表空間ID | 名稱 | 類型 | 狀態解讀 | 是否需重定向 |
|---|---|---|---|---|
| 2 | SYSTOOLSTMPSPACE | 系統管理空間 (SMS) | 恢復掛起 / 可定義存儲器 | 否(系統自動管理) |
| 3 | TBS_01 | 數據庫管理空間 (DMS) | 恢復掛起 / 必須定義存儲器 / 可定義存儲器 | 是 |
DB2 LIST TABLESPACE CONTAINERS FOR 3 SHOW DETAIL
輸出關鍵信息:
原則: 新容器大小 ≥ 原容器大小;DMS 用 `FILE "路徑" 頁數`,SMS 用 `PATH "路徑"`。
DB2 SET TABLESPACE CONTAINERS FOR 3 USING (
FILE "C:\NEWDB\TBS\CONTAINER_01_01" 25600,
FILE "C:\NEWDB\TBS\CONTAINER_01_02" 25600
)
DB2 SET TABLESPACE CONTAINERS FOR 3 USING (
FILE "C:\NEWDB\TBS\CONTAINER_01" 51200
)
註:合併時總頁數 = 原容器頁數之和,單容器上限受文件系統/OS 限制。
-- DMS 表空間示例
DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01" 51200)
DB2 SET TABLESPACE CONTAINERS FOR 4 USING (FILE "C:\NEWDB\TBS\CONTAINER_02" 25600)
DB2 SET TABLESPACE CONTAINERS FOR 5 USING (FILE "C:\NEWDB\TBS\CONTAINER_03" 51200)
DB2 SET TABLESPACE CONTAINERS FOR 6 USING (FILE "C:\NEWDB\TBS\CONTAINER_04" 64000)
DB2 SET TABLESPACE CONTAINERS FOR 7 USING (FILE "C:\NEWDB\TBS\CONTAINER_05" 153600)
DB2 SET TABLESPACE CONTAINERS FOR 8 USING (FILE "C:\NEWDB\TBS\CONTAINER_06" 51200)
DB2 SET TABLESPACE CONTAINERS FOR 9 USING (FILE "C:\NEWDB\TBS\CONTAINER_07" 25600)
-- SMS 表空間示例(臨時表空間、系統表空間常見)
DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")
DB2 SET TABLESPACE CONTAINERS FOR 11 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_08")
DB2 SET TABLESPACE CONTAINERS FOR 12 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_04")
DB2 SET TABLESPACE CONTAINERS FOR 13 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_08")
DB2 LIST TABLESPACES
再次執行,確認所有表空間狀態不再包含「必須定義存儲器」,均轉為「恢復掛起 / 可定義存儲器」即可進入下一階段。
DB2 RESTORE DB OLDDB CONTINUE
此命令將基於已定義的容器映射繼續數據頁還原、日誌重放,最終將數據庫帶入一致性狀態。完成後執行 DB2 CONNECT TO NEWDB 驗證可用性。
DB2 重定向恢復的核心邏輯是:「備份元數據記錄舊路徑 → 恢復掛起 → 手動建立新路徑映射 → 繼續還原」。掌握 LIST TABLESPACES 狀態判讀、SET TABLESPACE CONTAINERS 語法差異、容器大小約束,即可從容應對異機遷移、存儲重組、災難恢復等高階場景。建議將上述命令模板化納入運維手冊,定期演練,確保關鍵時刻「手熟、心穩、數據不丟」。