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

DB2 重導向恢復完整操作指南:跨實例、跨機器克隆資料庫的三步驟法

     編輯:DB2 教學

何時需要重導向恢復?

當備份映像內記錄的檔案系統路徑/裸裝置與目標系統不一致時(如不同磁碟佈局、不同實例名稱、異機遷移),必須執行重導向恢復,明確指定目標端表空間容器路徑。

跨平台支援:DB2 V8 起支援 Unix 間跨平台恢復(HP-UX ↔ AIX ↔ Solaris),但 不支援 Windows/Linux 與 Unix 互相恢復。

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

  1. restore database ... redirect:啟動重導向模式。
  2. set tablespace containers for ... using ...:定義每個表空間的目標容器路徑。
  3. restore database ... continue:提交並完成恢復。

建議將三步驟寫入腳本一次執行,避免 Session 中斷導致 SQL0900N 失敗。

實戰範例:同主機跨實例克隆 (PROD → 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

若跨機器,請在目標機建立相同路徑並複製 213640.0 映像檔。

3. 啟動目標實例並執行重導向恢復

set DB2INSTANCE=MYINST
db2start
db2 restore db movies from d taken at 20021006213640 to d redirect

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

db2 set tablespace containers for 0 using (path 'd:\s0con1')
db2 set tablespace containers for 1 using (path 'd:\s1con1')
db2 set tablespace containers for 2 using (path 'd:\s2con1')

使用 list tablespaces show detail 核對來源端所有表空間 ID,確保逐一定義。

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
db2stop
set DB2INSTANCE=PROD
db2stop

關鍵參數說明

  • from:備份映像所在父目錄 (若非當前目錄必須指定)。
  • taken at:備份時間戳,精確到秒。
  • to:目標資料庫目錄 (Windows 需指定磁碟代號)。
  • redirect / continue:成對使用,中間插入容器定義。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved