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

DB2 基礎:使用重導向恢復克隆 DB2 資料庫

     編輯:DB2 教學

前言

資料庫還原操作透過備份映像重建資料庫。若要將資料庫從一台機器複製到另一台,最簡單的方式是從備份映像還原。然而,備份映像中包含來源系統的檔案系統路徑與實體裝置資訊。除非目標系統的儲存配置與來源完全一致,否則必須執行重導向還原,在還原過程中重新定義表空間容器路徑。

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

重導向還原三步驟流程

  1. 發出 RESTORE DATABASE ... REDIRECT 啟動還原並進入重導向模式。
  2. 使用 SET TABLESPACE CONTAINERS 為各表空間指定目標系統上的新容器路徑。
  3. 發出 RESTORE DATABASE ... CONTINUE 完成還原。

重要:整個過程必須在同一個 CLP 會話中完成,否則會報 SQL0900N 失敗。建議將三步驟寫成腳本一次執行。

Windows 環境實戰範例

場景:來源實例 PROD,目標實例 MYINST,資料庫 MOVIES 位於 D 槽。

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

FROM 指定備份所在目錄,TO 指定目標資料庫目錄(Windows 需指定磁碟機代號)。

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

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')

容器 ID 0、1、2 分別對應 SYSCATSPACE、TEMPSPACE1、USERSPACE1。可用 LIST TABLESPACES SHOW DETAIL 確認來源所有表空間,確保目標端皆已定義容器。

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

關鍵提醒

  • 容器路徑必須在目標系統實際存在且 DB2 實例擁有者具備讀寫權限。
  • 若來源有多個表空間,務必逐一對應定義容器,避免遺漏導致還原失敗。
  • 跨實例/跨機器時,確保 DB2 版本、修補包層級相容。

結語

重導向還原是 DB2 資料庫遷移與克隆的核心技能。掌握三步驟流程與容器重新定義技巧,即可靈活應對異構環境下的資料庫部署與災難恢復需求。

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