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

DB2 在線導出實戰:db2look 結構導出與分表數據並行匯出腳本

     編輯:DB2 教學

導出架構:結構與數據分離

  • 結構導出:db2look 產生 DDL (表、視圖、索引、約束、程序、觸發器、序列...)。
  • 數據導出:EXPORT 指令逐表匯出 IXF/DEL 格式。
  • **在線導出**:資料庫持續服務,導出過程不阻塞讀寫 (EXPORT 共享鎖)。

步驟一:結構導出 (db2look)


db2look -d TB33 -e -a -x -i TB33 -w TB33 -o TB33.sql

參數解析:

參數功能
-d TB33指定資料庫
-e導出 DDL (含表、視圖、索引、MQT、程序、觸發器、函數、序列...)
-a產生所有物件的統計資訊指令 (RUNSTATS)
-x產生授權指令 (GRANT)
-i TB33連接用戶 ID
-w TB33連接密碼
-o TB33.sql輸出檔案

其他常用:-z SCHEMA 限定 Schema、-c 導出 CHECK 約束、-f 導出 FK、-td % 設定語句結束符。

步驟二:數據導出 — 並行腳本生成與執行

1. 生成導出腳本 (SQL 查詢產生命令)


-- 在 DB2 Command Editor / CLP 執行
SELECT 'EXPORT TO H:\db2\TB33\' || RTRIM(TABNAME) || '.IXF OF IXF SELECT * FROM ' || RTRIM(TABNAME) || ';'
FROM SYSCAT.TABLES
WHERE TABSCHEMA = 'TB33' AND TYPE = 'T';
  • 針對 Schema TB33 所有表 (TYPE='T') 產生 EXPORT 指令。
  • 格式 IXF 保留結構與類型,利於導入。
  • 輸出導向檔案 export.txt。

2. 批次執行導出腳本


db2 -tvf export.txt

參數:-t 設定結束符 (預設 ;)、-v 回顯執行內容、-f 讀取輸入檔。

執行完成後,目標目錄 H:\db2\TB33\ 下將有每張表的 表名.IXF 檔案。

進階優化:大表並行導出

  • 大表單獨導出:EXPORT TO ... OF IXF SELECT * FROM big_table WHERE part_key BETWEEN ... 分片導出。
  • 使用 db2export API 或 db2move 工具 (支援並行度 -p)。
  • db2move TB33 EXPORT -sn TB33 -tn "T1,T2" -p 4 (4 並行進程)。

LOB 大物件處理


EXPORT TO data.ixf OF IXF
LOBS TO /lob_path/
LOBSINFILE lob_file.ldf
SELECT * FROM table_with_lob;

LOB 資料分檔存放,主 IXF 檔僅存路徑,避免單一巨型檔案。

驗證導出完整性

  1. 檢查 export.txt 執行日誌無錯誤 (SQLCODE=0)。
  2. 抽樣 IMPORT ... INSERT INTO ... COUNT(*) 對比筆數。
  3. db2ckbkp 檢查備份/導出檔案完整性 (針對備份映像)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved