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

DB2 資料遷移三大方案完整比較與操作指南

     編輯:DB2 教學

前言

DB2 資料遷移常見於版本升級、平台搬移、異構同步等場景。本文整理三大主流方案——「備份/還原」、「EXPORT/IMPORT」、「db2look + db2move」——的適用條件、操作步驟、優缺點與避坑指南,協助 DBA 依環境選擇最佳策略。

方案一:備份/還原(Backup & Restore)

適用場景

  • 同版本、同平台、同編碼的整庫搬移
  • 災難恢復、測試環境快速複製生產庫

操作流程

  1. 來源端:db2 backup database to compress include logs
  2. 將備份檔傳輸至目標主機
  3. 目標端:db2 restore database from taken at into logtarget
  4. db2 rollforward database to end of logs and complete

關鍵限制(必讀)

限制項目說明
跨平台不支援。Linux 備份檔無法還原到 Windows/AIX,反之亦然。
跨版本僅支援「向上相容」(如 11.1 → 11.5),不支援降級還原。
編碼/碼頁來源與目標資料庫碼頁、地域設定必須一致,否則還原失敗或資料亂碼。
時間戳還原時 taken at 必須與備份檔時間戳完全一致。

優缺點總結

  • ✅ 速度最快(頁面級複製)、保留所有物件權限、統計資訊、壓縮字典
  • ❌ 無法跨平台、無法部分還原單一 Schema/Table、需停機或線上備份授權

方案二:EXPORT / IMPORT(或 LOAD)

適用場景

  • 跨平台、跨版本、異構(DB2→DB2、DB2→其他)
  • 單表/少數表遷移、資料清洗、部分欄位轉型

操作流程

  1. 逐表匯出:db2 "export to /data/t1.ixf of ixf select * from schema.t1"
  2. 傳輸 IXF/DEL/WSF 檔案
  3. 目標端建立 DDL(可用 db2look 產生)
  4. 逐表匯入:db2 "import from /data/t1.ixf of ixf insert into schema.t1" 或用 LOAD 加速
  5. 重建索引、統計資訊、授權

優缺點總結

  • ✅ 彈性最高、支援跨平台/版本、可配合 ETL 清洗
  • ❌ 極度繁瑣:大量表需撰寫腳本逐表處理、外鍵順序需手動排序、大表匯入慢(建議改用 LOAD)

方案三:db2look + db2move(官方遷移工具組)

適用場景

  • 整庫 Schema + 資料遷移、跨平台/版本、自動化腳本化
  • 生產環境標準化遷移流程

核心指令

# 1. 產生 DDL(含表、索引、視圖、觸發程序、權限等)
db2look -d  -e -a -o schema.sql -l -x -td %

# 2. 匯出所有表資料(PC/IXF 格式)
db2move  export -sn  -u  -p 

# 3. 目標端建立資料庫、執行 schema.sql
db2 -tvf schema.sql

# 4. 匯入資料(LOAD 模式更快)
db2move  import -io replace -u  -p 

# 5. 重建外鍵、執行 RUNSTATS、REBIND

關鍵避坑指南

  1. 外鍵順序:db2look 產生的 DDL 中,外鍵定義建議剪離到獨立檔,待所有資料 LOAD/IMPORT 完成後再執行,否則會因父表資料未就緒導致子表匯入失敗。
  2. 大表用 LOAD:db2move import 內部呼叫 IMPORT,大表建議手動改用 LOAD 並啟用 NONRECOVERABLE、INDEXING MODE REBUILD。
  3. 編碼一致:匯出/匯入端 DB2CODEPAGE、資料庫碼頁必須一致,避免中文亂碼。
  4. 權限遷移:db2look -x 產生授權 DDL,務必在資料匯入後執行。

優缺點總結

  • ✅ 官方工具、支援整庫自動化、跨平台/版本、可腳本化納入 CI/CD
  • ❌ 外鍵處理需人工介入、大表效能需手動調整為 LOAD、錯誤訊息排查需熟悉 db2move.lst 日誌

三大方案快速選型表

維度備份/還原EXPORT/IMPORTdb2look+db2move
跨平台❌✅✅
跨版本僅升級✅✅
整庫速度⚡️ 最快🐢 最慢⚡️ 快(配合 LOAD)
單表/部分❌✅✅ (需手動篩選)
自動化程度高低高
外鍵處理自動手動排序半自動(需剪離 FK)

實務建議

  1. 同平台同版整庫搬家 → 首選備份/還原,最省時。
  2. 跨平台、跨版本、或需資料清洗 → 用 db2look + db2move,配合大表手動 LOAD。
  3. 極少數表、臨時同步 → 直接 EXPORT/IMPORT 或聯邦查詢(INSERT INTO ... SELECT * FROM remote.table)。
  4. 遷移前務必 完整測試:資料筆數核對、檢查約束驗證、應用端驗收測試。
  5. 保留 回滾方案:遷移前對目標端做快照/備份,失敗可秒級回滾。

結語

沒有銀彈,只有最適合當下環境的方案。建議 DBA 團隊將三套流程都寫成標準化 Runbook,並定期演練,才能在真正遷移時從容應對。

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