首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 資料移動全景詳解:Import/Export/Load 三大工具、四種檔案格式、LOB處理與進階效能優化

     編輯:DB2 教學

核心定義

工具方向核心特性
Import檔案 → 表SQL 層面逐列插入、完整記錄日誌、可恢復、支援所有格式、速度較慢
Export表 → 檔案最簡單、幾乎不出錯、支援所有格式、不阻塞讀取
Load檔案 → 表頁面級直接寫入、可選不記錄日誌、四階段管線、速度最快、大量資料首選

四大支援檔案格式

1. ASC (非定界 ASCII)

固定寬度欄位,無分隔符,靠位置定義。
範例:10 Head Office 160 Corporate New York

2. DEL (定界 ASCII)

最通用。列換行、欄分隔符 (預設逗號)、字串引號 (預設雙引號)。
可用 MODIFIED BY coldel$ chardel'' decplusblank 自訂。
範例:10,"Head Office",160,"Corporate","New York"

3. WSF (Work Sheet Format)

Lotus 1-2-3/Symphony 專用,現罕用。

4. IXF (PC/IXF, Integration Exchange Format)

DB2 專屬二進位格式,含表結構、索引、授權、資料。
支援 REPLACE_CREATE 直接重建表。跨平台遷移首選。

Export 進階範例庫

基本導出

EXPORT TO c:\org.txt OF DEL SELECT * FROM org

自訂分隔符/引號/十進制符

EXPORT TO c:\staff.txt OF DEL
  MODIFIED BY coldel$ chardel'' decplusblank
  SELECT * FROM staff

LOB 大物件導出 (分離檔案)

EXPORT TO d:\myfile.del OF DEL
  LOBS TO d:\lob\ LOBFILE lobs
  MODIFIED BY lobsinfile
  SELECT * FROM emp_photo
  • 主檔存指標:"000130","bitmap","lobs.001.0.43690/"
  • LOB 實體資料:d:\lob\lobs.001, lobs.002…
  • 目錄 d:\lob 須預先存在。

訊息記錄與欄位重命名 (僅 IXF/WSF)

EXPORT TO d:\awards.ixf OF IXF
  MESSAGES d:\msgs.txt
  METHOD N(c1,c2,c3,c4,c5,c6,c7)
  SELECT * FROM staff WHERE dept=20

Import 進階技巧

ASC 固定寬度導入 (Import 專屬)

IMPORT FROM c:\org2.txt OF ASC
  METHOD L(1 5, 6 19, 20 25, 26 37, 38 50)
  INSERT INTO org

IXF 欄位選取/重排 (METHOD N/P)

# 導出帶欄名
EXPORT TO d:\org.ixf OF IXF METHOD N(a,b,c,d,e) SELECT * FROM org

# 導入選取 d,e,b 並重排,表不存在則自動建立
IMPORT FROM d:\org.ixf OF IXF METHOD N(d,e,b) REPLACE_CREATE INTO orgtest

四種插入模式

模式行為適用
INSERT追加增量、可恢復
INSERT_UPDATEPK 衝突更新,否則插入合併同步、需 PK
REPLACE清空再載入全量重刷、表存在
REPLACE_CREATE不存在則建表再載入遷移、僅 IXF

ASC 空值處理 (NULL INDICATORS)

IMPORT FROM c:\org2.txt OF ASC
  MODIFIED BY nullindchar=#
  METHOD L(1 5, 6 19, 20 25, 26 37, 38 50)
  NULL INDICATORS(0,0,0,0,38)
  REPLACE INTO org

第 5 欄第 38 字元為 # 視為 NULL。

Load 獨家進階功能與四階段架構

四階段

  1. Load:資料分頁寫入、索引鍵收集排序、可設一致性點 (Checkpoint) 支援斷點續傳。
  2. Build:依鍵值建索引,失敗可從此重啟。
  3. Delete:違反唯一/PK 列移至例外表,訊息寫入訊息檔。
  4. Index Copy:若用系統臨時表空間 + READ ACCESS,索引從臨時空間複製回目標表空間。

Load 專屬進階功能

  • 游標來源:LOAD FROM mycurs OF CURSOR INSERT INTO target,零中間檔案跨表/庫搬移。
  • 例外表:FOR EXCEPTION exc_tab,結構同目標 + TIMESTAMP + CLOB(32K) 記錄違約詳情。
  • Dump 檔:MODIFIED BY DUMPFILE=d:\dump 收集格式錯誤列。
  • ROWCOUNT / WARNINGCOUNT:限制載入列數/警告數,超標進入 Load Pending。
  • RESTART / TERMINATE:續傳或終止並釋放表鎖。
  • NOROWWARNINGS:抑制列級警告,大幅提速。
  • STATISTICS:同步收集統計 (WITH DISTRIBUTION AND DETAILED INDEXES ALL),僅相容 REPLACE。
  • SET INTEGRITY ... IMMEDIATE UNCHECKED:解除檢查待定狀態 (違反 CHECK 約束)。

效能關鍵參數

參數效果建議
NONRECOVERABLE零日誌,最快初始載入、可重建資料
COPY YES/NO歸檔模式下控制 Backup PendingCOPY YES 避免表空間掛起
FASTPARSE減少檢查 (DEL/ASC),資料乾淨時開啟提升 20-30%
ANYORDERSMP 允許無序載入,配合 CPU_PARALLELISM>1多核並行加速
DATA BUFFER指定 4KB 頁面緩衝區數視記憶體調大至 1000+

選型決策樹

  1. 異構遷移 → Export (IXF/DEL) → Import/Load
  2. DB2 全量遷移、保留 DDL/索引/授權 → Export IXF → Load REPLACE_CREATE
  3. 日常增量同步、需日誌恢復 → Import INSERT/INSERT_UPDATE
  4. 資料倉庫 TB 級初始化、可重建 → Load NONRECOVERABLE + FASTPARSE + ANYORDER
  5. 需同步統計、省去 RUNSTATS → Load STATISTICS YES ...

實戰案例:STAFF 表完整演練

文中包含:建立測試表、建立唯一索引、Export DEL、Load INSERT + FOR EXCEPTION 例外表驗證、製造格式錯誤驗證 DUMPFILE、ROWCOUNT 限制、WARNINGCOUNT 觸發 Load Pending、NOROWWARNINGS 抑制警告、STATISTICS 同步統計、SET INTEGRITY 解除檢查待定——完整覆蓋 Load 所有進階特性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved