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

DB2 單表匯出/匯入、備份/還原、db2look/db2move 完整操作指南

     編輯:DB2 綜合知識

前言

DB2 提供多層次的資料移動工具:單表 EXPORT/IMPORT/LOAD、整庫 BACKUP/RESTORE、結構 db2look、資料 db2move。本文整理各工具適用場景、常用參數與實戰範例。

一、單表資料移動 (EXPORT / IMPORT / LOAD)

1.1 EXPORT 匯出

# 連線
db2 connect to mydb user myuser using mypass

# 匯出至 IXF (含結構、資料、索引定義) — 推薦格式
db2 "EXPORT TO t1.ixf OF IXF SELECT * FROM schema.tab1"

# 匯出至 DEL (逗號分隔純文字)
db2 "EXPORT TO t1.del OF DEL MODIFIED BY CHARDEL\"\" COLDEL, SELECT * FROM schema.tab1"
  • IXF:二進位、含完整中繼資料,可直接 IMPORT REPLACE_CREATE 重建表。
  • DEL:跨平台/異構遷移通用,需手動建立目標表。

1.2 IMPORT 匯入

# 附加建立表 (FORCECREATE) + 批次提交 (COMMITCOUNT)
db2 "IMPORT FROM t1.ixf OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 REPLACE_CREATE INTO schema.tab1"

# 僅插入資料 (表需預先存在)
db2 "IMPORT FROM t1.ixf OF IXF INSERT INTO schema.tab1"

REPLACE_CREATE:表不存在則依 IXF 建立;存在則 TRUNCATE 後載入。
REPLACE:表必須存在,僅截斷資料。

1.3 LOAD 高速載入 (大量資料首選)

db2 "LOAD FROM t1.ixf OF IXF REPLACE INTO schema.tab1 COPY YES USE TSM"
  • 繞過 SQL 層直接寫入資料頁,速度比 IMPORT 快 5-10 倍。
  • 載入後表處於 LOAD PENDING 狀態,需 db2 "SET INTEGRITY FOR schema.tab1 IMMEDIATE CHECKED" 釋放。
  • 生產環境必須指定 COPY YES 提供備份影像,否則不可復原。

二、整庫備份與還原 (BACKUP / RESTORE)

2.1 離線備份 (資料庫需關閉連線)

db2 BACKUP DATABASE mydb TO /backup/dir WITH 2 BUFFERS BUFFER 1024 COMPRESS INCLUDE LOGS
  • INCLUDE LOGS:將作用中日誌檔一併備份,支援前滾復原。
  • COMPRESS:壓縮備份影像 (需授權)。

2.2 線上備份 (資料庫保持服務)

db2 BACKUP DATABASE mydb ONLINE TO /backup/dir WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS

需資料庫處於 LOGRETAIN RECOVERY 或 USEREXIT 模式 (啟用歸檔日誌)。

2.3 還原

# 還原至原位置
db2 RESTORE DATABASE mydb FROM /backup/dir TAKEN AT 20231015120000

# 重導向還原 (變更容器路徑)
db2 RESTORE DATABASE mydb FROM /backup/dir TAKEN AT 20231015120000
    INTO /new/path
    REDIRECT
    WITHOUT PROMPTING

重導向還原後需執行 db2 "SET TABLESPACE CONTAINERS FOR 2 USING (FILE '/new/path/ts2' 10000)" 等指令調整容器,再 db2 RESTORE DATABASE mydb CONTINUE。

2.4 前滾復原 (Point-in-Time Recovery)

db2 ROLLFORWARD DATABASE mydb TO END OF LOGS AND COMPLETE

三、結構遷移工具:db2look

3.1 擷取 DDL

# 全庫結構 (含權限、觸發器、程序、MQT...)
db2look -d mydb -e -o all_ddl.sql -i myuser -w mypass

# 僅特定 Schema
db2look -d mydb -z MYSCHEMA -e -o schema_ddl.sql

# 僅統計資訊更新陳述式 (RUNSTATS)
db2look -d mydb -u MYUSER -m -o runstats.sql
  • -e:產生 DROP 陳述式 (方便重建)。
  • -x:排除授權陳述式。
  • -wrapper/-server:擷取聯合伺服器物件。

3.2 套用 DDL

db2 -tvf all_ddl.sql

四、資料遷移工具:db2move

4.1 匯出 (指定 Schema/表)


cd /migration/export_dir
db2move mydb EXPORT -sn MYSCHEMA -tn "TAB1,TAB2,TAB3"

產生 *.ixf、*.msg、db2move.lst (清單)。

4.2 匯入


cd /migration/export_dir
db2move mydb IMPORT -io REPLACE_CREATE
  • -io:Import Option,REPLACE_CREATE/REPLACE/INSERT。
  • 大量表可編寫 Shell 迴圈並行執行多個 db2move 進程 (分批表清單)。

五、選擇建議決策樹

需求推薦工具關鍵參數
單表/少量表、需重建結構EXPORT IXF + IMPORT REPLACE_CREATEFORCECREATE, COMMITCOUNT
單表/大量資料 (>100萬列)、追求速度EXPORT IXF + LOAD REPLACECOPY YES, SET INTEGRITY
整庫災難復原/環境複製BACKUP + RESTORE (+ ROLLFORWARD)INCLUDE LOGS, ONLINE/OFFLINE
異構遷移/跨版本升級db2look (DDL) + db2move (資料)-z Schema, -tn 表清單
定期備份排程BACKUP ONLINE + 自動刪除舊備份COMPRESS, INCLUDE LOGS

結語

依據資料量、停機容忍度、目標環境差異選擇適當工具組合。核心原則:結構用 db2look、資料用 db2move/LOAD、災備用 BACKUP/RESTORE,並務必在測試環境演練完整還原流程。

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