GATHER)、分區鍵、壓縮選項等。CREATE DATABASE target ...,建立 DMS 表空間 GATHER。SYSCAT.TABLES,自動生成每表 EXPORT TO ... OF IXF SELECT * FROM tab。LOAD FROM ... OF IXF REPLACE INTO tab(建議 Load)。String selectTableSql = "SELECT name FROM sysibm.systables WHERE creator = '" + creator + "' AND type='T'";
// 迭代結果集,拼裝:
// db2 "export to aa1.ixf of ixf select * from TABLE1"
// db2 "export to aa2.ixf of ixf select * from TABLE2"
...
關鍵點:
IXF 格式保留結構與資料類型,支援 REPLACE_CREATE。aa{序號}.ixf 避免衝突。sb.append("db2 \"load from aa" + (i+1) + ".ixf of ixf replace into " + tableName + " nonrecoverable\"");
sb.append("\r\n");
加速參數:
NONRECOVERABLE:不記錄日誌,速度最快。REPLACE:目標表已存在(步驟 4 已建表),直接覆寫。ANYORDER、FASTPARSE、DATA BUFFER 2000。| 技巧 | 說明 | 預期收益 |
|---|---|---|
| 並行 Export | 源庫無寫入時,多線程並行導出不同表 | 導出階段線性加速 |
| 並行 Load | 目標庫表無 FK 相依時,多線程並行 Load 不同表 | 裝載階段線性加速 |
| IXF 格式 | 二進位、含結構、支援 REPLACE_CREATE、跨平台相容 | 避免資料類型轉換錯誤 |
| NONRECOVERABLE | Load 階段零日誌,CPU/IO 專注資料寫入 | 速度提升 2-3 倍 |
| 載入後立即備份 | NONRECOVERABLE 要求載入後離線備份才能前滾恢復 | 滿足恢復策略 |
| 統計同步收集 | LOAD ... STATISTICS YES WITH DISTRIBUTION AND DETAILED INDEXES ALL | 省去額外 RUNSTATS 時間 |
ALTER TABLE ... DROP FOREIGN KEY,載入後重建。IDENTITY/GENERATED ALWAYS 欄位:Export 會導出實際值,Load 需 IDENTITYIGNORE 或 IDENTITYMISSING 選項。LOBs TO ... LOBFILE ... 分離。CODESET、TERRITORY 必須一致,否則字元資料損壞。GRANT,需額外匯出 SYSCAT.TABAUTH 等目錄視圖生成授權腳本。RUNSTATS 後統計資料合理,無 SQL1227N 類不一致。「DDL 重建 + IXF Export/Load」是 DB2 異構/同構遷移最標準、風險最低、效能最佳的模式。關鍵在於:自動化腳本消除人工錯誤、Load 參數極致壓榨硬體、驗收腳本保證資料零損失。掌握此流程,TB 級遷移也能從容應對。