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

DB2 備份與跨平台遷移實戰大全:AIX→Linux 異構遷移、增量恢復與 db2move/db2look 標準化流程

     編輯:DB2 教學

前言

跨平台遷移 (AIX → Linux) 是 DB2 遷移中最高難度場景之一:位元組序、檔案系統、系統參數全面變更。本文整合備份恢復 (含增量/前滾) 與 db2look/db2move 邏輯遷移雙軌方案,提供從參數配置到驗證收尾的完整實戰指南。

一、備份恢復軌:物理級異機恢復 (含增量/前滾)

1. 歸檔模式啟用 (前置必要條件)


db2 "UPDATE DB CFG FOR PRODDB USING MIRRORLOGPATH /home/db2inst1/mirror_log"
db2 "UPDATE DB CFG FOR PRODDB USING USEREXIT ON"
db2 "UPDATE DB CFG FOR PRODDB USING LOGRETAIN ON"
db2 "UPDATE DB CFG FOR PRODDB USING TRACKMOD ON"  # 啟用增量備份
db2stop force; db2start

2. 線上完整備份 + 包含日誌


db2 "BACKUP DATABASE PRODDB ONLINE TO /home/db2inst1/on_back INCLUDE LOGS"
# 時間戳記範例: 20240115120000

3. 線上增量備份


db2 "BACKUP DATABASE PRODDB ONLINE INCREMENTAL TO /home/db2inst1/on_back INCLUDE LOGS"
# 時間戳記範例: 20240115180000

4. 模擬災難:Drop 資料庫


db2stop force; db2start; db2 "DROP DATABASE PRODDB"

5. 增量恢復關鍵順序 (易錯點!)


# ❌ 錯誤順序:先增量後完整 → SQL2574N
# ✅ 正確順序:先完整,再增量 (自動尋找基準完整備份)

# 方法 A:手動指定完整備份時間戳
db2 "RESTORE DATABASE PRODDB INCREMENTAL FROM /home/db2inst1/on_back TAKEN AT 20240115120000"
db2 "RESTORE DATABASE PRODDB INCREMENTAL FROM /home/db2inst1/on_back TAKEN AT 20240115180000"

# 方法 B:AUTOMATIC 關鍵字 (推薦) - 自動尋找完整備份鏈
db2 "RESTORE DATABASE PRODDB INCREMENTAL AUTOMATIC FROM /home/db2inst1/on_back TAKEN AT 20240115180000 \
LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR"

6. 前滾日誌 (含 OVERFLOW 路徑)


# 歸檔日誌預先複製至 OVERFLOW 路徑
cp -r /prod/archlog/* /home/db2inst1/overflow_log/

db2 "ROLLFORWARD DATABASE PRODDB TO END OF LOGS AND COMPLETE \
OVERFLOW LOG PATH (/home/db2inst1/overflow_log)"

7. db2ckrst 恢復順序輔助工具


db2ckrst -d -t 20240115180000 -r PRODDB
# 輸出建議恢復順序,嚴格遵循即可避免 SQL2574N

二、跨平台遷移軌:邏輯級遷移 AIX → Linux (db2look + db2move)

1. 源端 (AIX) 導出結構


db2look -d PRODDB -e -o db2look_proddb.sql
# -e: 導出 DDL (含權限、索引、MQT、觸發器等)
# 輸出檔可編輯:修改表空間、緩衝池、分區、壓縮等 Linux 參數

2. 源端導出數據


db2move PRODDB EXPORT -u db2inst1 -p password
# 產生:*.ixf (數據), *.msg (訊息), db2move.lst (檔案清單)
# 可編輯 db2move.lst 選擇性導入特定表

3. 目標端 (Linux) 建庫與導入


# 3.1 建立資料庫 (Linux 路徑、編碼、地域)
db2 "CREATE DATABASE PRODDB AUTOMATIC STORAGE YES ON /db2data DBPATH ON /db2dbpath \
USING CODESET UTF-8 TERRITORY TW COLLATE USING SYSTEM"

# 3.2 執行 DDL 建立結構 (編輯後的 db2look.sql)
db2 -tvf db2look_proddb.sql

# 3.3 導入數據 (IMPORT 較慢但記錄詳細;LOAD 較快但需 SET INTEGRITY)
db2move PRODDB IMPORT
# 或大數據量用 LOAD
db2move PRODDB LOAD

三、兩軌方案選型決策矩陣

維度物理備份恢復 (RESTORE/ROLLFORWARD)邏輯遷移 (db2look/db2move)
跨平台支援❌ 不支援 (AIX 備份不可在 Linux 恢復)✅ 完全支援
同平台異機✅ 最快、最完整 (含授權、配置、統計)✅ 可行但較慢
版本升級❌ 僅支援同版本/修補包✅ 支援跨版本 (DDL 可編輯適配)
表空間重構❌ 固定原結構 (REDIRECT 僅限路徑)✅ 完全重構 (DDL 任意修改)
停機時間僅恢復時間 (可並行前滾)EXPORT + IMPORT/LOAD 時間 (較長)
資料一致性時間點一致性 (前滾到特定點)導出時點一致性 (需鎖表或閒時)
大數據量 (>1TB)✅ 推薦 (物理複製)⚠️ 耗時極長,需並行優化

四、跨平台遷移關鍵適配清單 (AIX → Linux)

  1. 編碼/地域:CODESET UTF-8 TERRITORY TW (對應 AIX 可能的 BIG5/EUC)
  2. 表空間路徑:AIX /dev/hdiskX / /oracle/data → Linux /db2data / /db2index
  3. 分區配置:AIX DPF 節點數 → Linux DPF 節點數 (可調整)
  4. 緩衝池大小:依 Linux 記憶體重新規劃
  5. 壓縮字典:遷移後 REORG TABLE ... RESETDICTIONARY 重建
  6. 腳本路徑:#!/usr/bin/ksh → #!/bin/bash、路徑分隔符、指令參數差異
  7. 外部程式/UDF:C/Java UDF 重新編譯部署 (Linux .so vs AIX .a/.so)

五、驗證與切換標準流程

  1. RUNSTATS 全表統計更新
  2. REORGCHK 檢查重組需求
  3. 應用層功能測試:核心查詢、批次作業、報表、介面
  4. 效能基準對比:關鍵 SQL 耗時、吞吐量、資源使用
  5. 唯讀模式平行運行 24-48 小時 (雙寫驗證)
  6. DNS/連線字串切換,觀察 1 週穩定性

結語

跨平台遷移無銀彈:同平台用物理備份恢復 (最快)、跨平台用邏輯遷移 (最靈活)。掌握增量恢復的「先完整後增量、AUTOMATIC 關鍵字」、db2look/db2move 的「結構與數據分離、DDL 可編輯適配」,並建立「遷移適配清單 + 驗證基準 + 切換預案」三位一體交付標準,才能在複雜異構遷移中掌控風險、按時交付。

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