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

DB2 線上備份與重導向還原異機異名實戰:從備份映像到容器重定義再到前滾上線全流程

     編輯:DB2 教學

本文記錄一次真實的 DB2 線上備份映像跨機器、跨實例、重命名還原的完整操作日誌,涵蓋 線上備份含日誌 → 跨主機複製映像 → 目標端預建表空間容器 → REDIRECT 還原 → 容器路徑重定義 → 繼續還原 → 前滾上線 的標準化流程,適用於異機測試環境建立、生產遷移演練等場景。

場景設定

  • 源端:資料庫 WDCS,Windows,備份目標 E:\Allan。
  • 目標端:本機 Windows,目標資料庫同名 WDCS,日誌路徑 C:\db2workspace\wdcs_log,容器路徑 C:\DB2\NODE0000\WDCS\...。

操作步驟詳解

1. 源端:線上全備份 (含日誌)

db2 backup db wdcs online to E:\Allan include logs
# 產生時間戳:20100420093345

將整個備份目錄結構 E:\Allan\WDCS.0\DB2\NODE0000\CATN0000\20100420\093345.001 複製至目標機 C:\temp。

2. 源端:查詢表空間容器詳細資訊 (關鍵參考)

db2 list tablespaces show detail

記錄每個表空間的 ID (0-8)、類型 (DMS/SMS)、容器路徑、大小。目標端必須按此 ID 逐一建立對應容器。

3. 目標端:預建所有表空間容器目錄/檔案

mkdir C:\DB2\NODE0000\wdcs\syscatspace
mkdir C:\DB2\NODE0000\wdcs\tempspace1
mkdir C:\DB2\NODE0000\wdcs\userspace1
mkdir C:\DB2\NODE0000\wdcs\systoolspace
mkdir C:\DB2\NODE0000\wdcs\tablespace1
mkdir C:\DB2\NODE0000\wdcs\indexspace1
mkdir C:\DB2\NODE0000\wdcs\systoolstmpspace
# DMS 檔案容器需預建檔案 (此處為示意,實際大小依源端而定)
# fsutil file createnew C:\db2workspace\wdcscontainer\dms.dat 52428800000 (50GB)

4. 目標端:建立同名空資料庫

db2 create db wdcs

5. 目標端:啟動重導向還原 (REDIRECT 模式)

db2 restore db wdcs from c:\temp taken at 20100420093345 into wdcs logtarget c:\db2workspace\wdcs_log redirect

系統提示 SQL1277N 要求定義容器,進入交互式容器定義階段。

6. 核心步驟:逐一重定義表空間容器 (SET TABLESPACE CONTAINERS)

db2 set tablespace containers for 0 using (path "c:\DB2\node0000\wdcs\syscatspace")
db2 set tablespace containers for 1 using (path "c:\DB2\node0000\wdcs\tempspace1")
db2 set tablespace containers for 2 using (path "c:\DB2\node0000\wdcs\userspace1")
db2 set tablespace containers for 3 using (path "c:\DB2\node0000\wdcs\systoolspace")
db2 set tablespace containers for 4 using (path "c:\DB2\node0000\wdcs\tablespace1")
db2 set tablespace containers for 5 using (path "c:\DB2\node0000\wdcs\indexspace1")
db2 set tablespace containers for 6 using (path "c:\DB2\node0000\wdcs\systoolstmpspace")
# DMS 檔案容器 (ID 7, 8)
db2 set tablespace containers for 7 using (file "c:\db2workspace\wdcscontainer\dms.dat" 50000)
db2 set tablespace containers for 8 using (file "c:\db2workspace\wdcscontainer\index.dat" 50000)

鐵律:FOR <tablespace_id> 必須與源端 LIST TABLESPACES 顯示的 ID **完全一致**,順序不可錯。

7. 繼續還原數據頁

db2 restore db wdcs continue

此階段才真正將資料頁寫入新定義的容器中。

8. 前滾日誌完成恢復

db2 rollforward db wdcs to end of logs and stop overflow log path (C:\db2workspace\wdcs_log)

資料庫進入 NORMAL 狀態,驗證業務可用。

關鍵成功要素總結

環節關鍵點
備份映像結構保持完整目錄樹 (DBNAME.0/DB2/NODE.../CATN.../TS/SEQ.001)
容器 ID 對應源端 LIST TABLESPACES ID ↔ 目標端 SET CONTAINERS FOR ID
DMS 容器預建檔案容器需預建檔案並指定大小 (50000 頁 = ~200MB)
LOGTARGET還原階段從映像提取日誌至指定目錄,供前滾讀取
OVERFLOW LOG PATH前滾階段讀取額外歸檔日誌的路徑 (含 LOGTARGET 提取的日誌)

此流程為 DB2 異機遷移的「教科書級」標準作法,嚴格遵循容器 ID 對應與 REDIRECT 兩階段提交機制,成功率極高。

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