DB2 提供多層次的資料移動工具:單表 EXPORT/IMPORT/LOAD、整庫 BACKUP/RESTORE、結構 db2look、資料 db2move。本文整理各工具適用場景、常用參數與實戰範例。
# 連線
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"
IMPORT REPLACE_CREATE 重建表。# 附加建立表 (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:表必須存在,僅截斷資料。
db2 "LOAD FROM t1.ixf OF IXF REPLACE INTO schema.tab1 COPY YES USE TSM"
LOAD PENDING 狀態,需 db2 "SET INTEGRITY FOR schema.tab1 IMMEDIATE CHECKED" 釋放。COPY YES 提供備份影像,否則不可復原。db2 BACKUP DATABASE mydb TO /backup/dir WITH 2 BUFFERS BUFFER 1024 COMPRESS INCLUDE LOGS
INCLUDE LOGS:將作用中日誌檔一併備份,支援前滾復原。COMPRESS:壓縮備份影像 (需授權)。db2 BACKUP DATABASE mydb ONLINE TO /backup/dir WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS
需資料庫處於 LOGRETAIN RECOVERY 或 USEREXIT 模式 (啟用歸檔日誌)。
# 還原至原位置
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。
db2 ROLLFORWARD DATABASE mydb TO END OF LOGS AND COMPLETE
# 全庫結構 (含權限、觸發器、程序、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:擷取聯合伺服器物件。db2 -tvf all_ddl.sql
cd /migration/export_dir
db2move mydb EXPORT -sn MYSCHEMA -tn "TAB1,TAB2,TAB3"
產生 *.ixf、*.msg、db2move.lst (清單)。
cd /migration/export_dir
db2move mydb IMPORT -io REPLACE_CREATE
-io:Import Option,REPLACE_CREATE/REPLACE/INSERT。db2move 進程 (分批表清單)。| 需求 | 推薦工具 | 關鍵參數 |
|---|---|---|
| 單表/少量表、需重建結構 | EXPORT IXF + IMPORT REPLACE_CREATE | FORCECREATE, COMMITCOUNT |
| 單表/大量資料 (>100萬列)、追求速度 | EXPORT IXF + LOAD REPLACE | COPY 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,並務必在測試環境演練完整還原流程。