DB2 備份/恢復僅支援**同構平台** (Windows→Windows, AIX→AIX)。跨平台 (如 Windows→AIX) 需走「結構導出 + 資料導出 + 目標重建 + 資料導入」標準路徑。本文基於實戰總結 10 步驟標準作業程序 (SOP)。
# 1. 來源配置備份
db2 get dbm cfg > dbm_cfg.src
db2 get db cfg for srcdb > db_cfg.src
db2set -all > registry.src
db2 connect to srcdb
db2 list tablespaces show detail > tbsp.src
db2 list packages > pkgs.src
# 2. 導出 DDL (含統計)
db2look -d srcdb -e -u srcuser -p -o src_ddl.sql
# 3. 目標建庫 (範例)
db2 create db tgtdb automatic storage yes on /data/db
db2 connect to tgtdb
db2 "create large tablespace ts32k pagesize 32k managed by automatic storage"
# 4. 載入資料
db2 "load from table1.ixf of ixf replace into table1 copy no without prompting"
# ... 批次執行
# 5. 執行 DDL
db2 -tvf src_ddl.sql
| 坑點 | 對策 |
|---|---|
| APPGROUP_MEM_SZ 過小導致 db2look 失敗 | 遷移前調大來源庫 `appgroup_mem_sz` |
| 頁面大小不匹配 (來源 32K 表 → 目標無 32K 表空間) | 目標預建所有頁面大小表空間 |
| 代碼頁/編碼不一致 (Windows 1252 vs AIX UTF-8) | 建庫指定 `CODESET UTF-8 TERRITORY US` |
| 外部存儲過程庫路徑差異 | DDL 中 `EXTERNAL NAME` 需手動修正目標路徑 |
| 統計資訊遺失導致效能劣化 | 遷移後全庫 `RUNSTATS` + `REBIND` |
跨平台遷移核心在於**「結構與資料分離、參數預留、編碼對齊、驗證閉環」**——無捷徑,唯有標準化流程保障成功率。