跨平台遷移 (AIX → Linux) 是 DB2 遷移中最高難度場景之一:位元組序、檔案系統、系統參數全面變更。本文整合備份恢復 (含增量/前滾) 與 db2look/db2move 邏輯遷移雙軌方案,提供從參數配置到驗證收尾的完整實戰指南。
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
db2 "BACKUP DATABASE PRODDB ONLINE TO /home/db2inst1/on_back INCLUDE LOGS"
# 時間戳記範例: 20240115120000
db2 "BACKUP DATABASE PRODDB ONLINE INCREMENTAL TO /home/db2inst1/on_back INCLUDE LOGS"
# 時間戳記範例: 20240115180000
db2stop force; db2start; db2 "DROP DATABASE PRODDB"
# ❌ 錯誤順序:先增量後完整 → 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"
# 歸檔日誌預先複製至 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)"
db2ckrst -d -t 20240115180000 -r PRODDB
# 輸出建議恢復順序,嚴格遵循即可避免 SQL2574N
db2look -d PRODDB -e -o db2look_proddb.sql
# -e: 導出 DDL (含權限、索引、MQT、觸發器等)
# 輸出檔可編輯:修改表空間、緩衝池、分區、壓縮等 Linux 參數
db2move PRODDB EXPORT -u db2inst1 -p password
# 產生:*.ixf (數據), *.msg (訊息), db2move.lst (檔案清單)
# 可編輯 db2move.lst 選擇性導入特定表
# 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) | ✅ 推薦 (物理複製) | ⚠️ 耗時極長,需並行優化 |
CODESET UTF-8 TERRITORY TW (對應 AIX 可能的 BIG5/EUC)/dev/hdiskX / /oracle/data → Linux /db2data / /db2indexREORG TABLE ... RESETDICTIONARY 重建#!/usr/bin/ksh → #!/bin/bash、路徑分隔符、指令參數差異RUNSTATS 全表統計更新REORGCHK 檢查重組需求跨平台遷移無銀彈:同平台用物理備份恢復 (最快)、跨平台用邏輯遷移 (最靈活)。掌握增量恢復的「先完整後增量、AUTOMATIC 關鍵字」、db2look/db2move 的「結構與數據分離、DDL 可編輯適配」,並建立「遷移適配清單 + 驗證基準 + 切換預案」三位一體交付標準,才能在複雜異構遷移中掌控風險、按時交付。