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

DB2 重導向恢復實戰:跨實例/跨機器克隆資料庫的標準三步曲

     編輯:DB2 教學

為什麼需要重導向恢復?

標準 RESTORE 會沿用備份映像檔中記錄的原始檔案系統路徑。若目標機器的磁碟配置、掛載點、實例名稱與來源不同,直接還原會失敗。重導向恢復 允許在還原過程中重新定義表空間容器路徑,是異機/異實例克隆資料庫的標準做法。

提示:DB2 V8 起支援跨 Unix-like 平台還原(如 HP-UX → AIX/Solaris),但 Windows/Linux 間不支援跨平台。

核心三步驟流程(必須在同一 Session 完成)

  1. RESTORE ... REDIRECT:啟動重導向模式
  2. SET TABLESPACE CONTAINERS:為每個表空間指定新容器路徑
  3. RESTORE ... CONTINUE:確認容器定義完成,繼續還原資料

關鍵限制:三步驟必須在同一 CLP 連線/腳本中執行,否則報 SQL0900N。建議寫成單一 Shell/批次腳本執行。

完整 Windows 範例:從 PROD 實例克隆 MOVIES 資料庫到 MYINST 實例

1. 來源端:建立完整離線備份

set DB2INSTANCE=PROD
db2start
db2 backup db movies

假設備份時間戳記為 20021006213640,備份檔位於 D:\MOVIES.0\PROD\NODE0000\CATN0000\20021006\213640.0。

2. 目標端:建立相同目錄樹並放入備份檔

md MOVIES.0\MYINST\NODE0000\CATN0000\20021006
copy D:\MOVIES.0\PROD\NODE0000\CATN0000\20021006\213640.0
     D:\MOVIES.0\MYINST\NODE0000\CATN0000\20021006\213640.0

此步驟至關重要:目錄名稱中實例名必須替換為目標實例(MYINST),否則後續 RESTORE 會找不到映像檔。

3. 啟動目標實例並執行重導向還原

set DB2INSTANCE=MYINST
db2start
db2 restore db movies from d taken at 20021006213640 to d redirect
  • FROM d:備份檔所在磁碟(若非當前目錄必須指定)
  • TO d:目標資料庫目錄(Windows 必須指定磁碟代號)
  • REDIRECT:進入重導向模式,等待容器定義

4. 重新定義三個預設表空間容器

先用 LIST TABLESPACES SHOW DETAIL 確認來源表空間 ID(通常 0=SYSCATSPACE, 1=TEMPSPACE1, 2=USERSPACE1),再逐一定義:

db2 set tablespace containers for 0 using (path 'd:\ts0con1')
db2 set tablespace containers for 1 using (path 'd:\ts1con1')
db2 set tablespace containers for 2 using (path 'd:\ts2con1')

每個表空間可定義多個容器分散 I/O;容器類型支援 PATH(目錄)、FILE(檔案)、DEVICE(裸裝置)。

5. 完成還原並驗證

db2 restore db movies continue

db2 list db directory
db2 connect to movies
db2 list tablespace containers for 0
db2 list tablespace containers for 1
db2 list tablespace containers for 2
db2 connect reset
db2 terminate
db2 stop

set DB2INSTANCE=PROD
db2 stop

常見坑點與最佳實踐

  • 腳本化:將上述所有命令寫入單一 .sh/.bat 檔,避免 Session 斷裂
  • 容器大小規劃:目標容器總大小需 ≥ 來源表空間已用空間,建議預留 20% 成長空間
  • 權限檢查:DB2 實例擁有者需對新容器路徑有完整讀寫權限
  • 跨版本還原:僅支援同主版本或升級路徑(如 9.7 → 10.5),降級不支援
  • 日誌模式:若來源為歸檔日誌模式,還原後需配置新日誌路徑並啟用歸檔

總結

重導向恢復是 DB2 跨環境克隆資料庫的核心技能。掌握「備份→建目錄樹→REDIRECT→定義容器→CONTINUE」五步曲,並將其腳本化、參數化,即可安全高效完成開發/測試環境建立、災難恢復演練、跨機房遷移等常見任務。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved