測試環境:IBM x346, 3.2GHz×2, 4GB, RAID1, DB2 V8.2.4, Win2000, DMS 表空間。
Load 速度基準:60-100 萬行/分。
GATHER)、分區鍵、壓縮屬性等。GATHER。EXPORT 命令。IMPORT 命令。String selectTableSql = "select name from sysibm.systables where creator = '" + creator + "' and type='T'";
ResultSet rs = stmt.executeQuery(selectTableSql);
StringBuffer sb = new StringBuffer();
int i = 0;
while (rs.next()) {
String tableName = rs.getString(1);
sb.append("db2 \"export to aa" + (++i) + ".ixf of ixf select * from " + tableName + "\"\r\n");
}
FileUtility.saveStringToFile(exportScriptPath, sb.toString(), false);
sysibm.systables:系統基礎表,CREATOR 過濾 Schema,TYPE='T' 僅用戶表。aa1.ixf, aa2.ixf... 避免同名覆蓋,便於並行/斷點續傳。| 優化點 | 做法 | 收益 |
|---|---|---|
| 並行導出/導入 | 按表大小分組,多線程/多會話並發跑腳本 | 利用多核 CPU,整體遷移時間近線性縮短 |
| LOAD 替代 IMPORT | 目標表無索引/約束時用 LOAD FROM ... OF IXF INSERT INTO ... | 速度提升 5-10 倍(不記日誌、不檢約束) |
| 大表分片導出 | 加 WHERE 範圍條件分批導出,配合 LOAD ... ALLOW READ ACCESS | 單文件可控、可斷點續傳、減少鎖衝突 |
| 統計信息同步 | 導入後立即 RUNSTATS + REBIND | 避免新庫上線首日計劃劣化 |
db2look -d SRCDB -e -c -o src.ddl vs db2look -d TGTDDB -e -c -o tgt.ddl 做 Diff。SELECT COUNT(*) FROM TABLE 源目雙向核對。md5sum 對比。DDL 先行、IXF 承載、自動化腳本、並行加速、驗收閉環——這是 DB2 數據遷移的工業級標準動作。掌握此流程,TB 級遷移也能「有條不紊、可控可驗」。