適用於變更表空間、將資料遷移至新資料庫等場景。測試環境:IBM x346、DB2 V8.2.4、Win2000 Adv Server、DMS 表空間,Load 速度 60-100 萬筆/分。
GATHER。GATHER。EXPORT 指令腳本。IMPORT 或 LOAD 腳本。public void createExportFile(Connection conn, String creator, String filePath) throws Exception {
DBBase dbBase = new DBBase(conn);
String selectTableSql = "select name from sysibm.systables where creator = '" + creator + "' and type='T'";
try {
dbBase.executeQuery(selectTableSql);
} catch (Exception ex) {
throw ex;
} finally {
dbBase.close();
}
DBResult result = dbBase.getSelectDBResult();
List<String> list = new ArrayList<>();
while (result.next()) {
list.add(result.getString(1));
}
StringBuffer sb = new StringBuffer();
String enterFlag = "\r\n";
for (int i = 0; i < list.size(); i++) {
sb.append("EXPORT TO ").append(list.get(i)).append(".ixf OF IXF SELECT * FROM ")
.append(creator).append(".").append(list.get(i)).append(";").append(enterFlag);
}
// 寫入檔案邏輯省略...
}
LOAD 而非 IMPORT,並指定 NONRECOVERABLE 減少日誌開銷。SORTKEYS 參數,將索引鍵傳遞給記憶體排序,避免寫入臨時檔。LOG NO,成功後執行離線備份(BACKUP DATABASE)清除備份暫掛狀態。RUNSTATS 統計資訊,載入後及時更新以確保優化器生成最佳計畫。採用「DDL 先行、資料後隨、自動化腳本、並行載入」的標準化流程,配合 DB2 實用工具參數調優,可高效完成 TB 級資料庫遷移,確保結構一致與資料完整。