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

DB2 跨平台數據遷移單腳本實踐:從大型機 EXPORT 到 AIX LOAD 全自動化

     編輯:DB2 教學

傳統痛點

大型機 → 文件 → FTP → AIX → LOAD,涉及兩套環境、多次人工干預,耗時易錯。

單腳本全流程自動化方案

在 AIX 端編寫 KornShell 腳本,利用 DB2 Connect 直連大型機完成 EXPORT,隨即 LOAD 入本地庫,全程無需登錄大型機。

核心腳本 (extract_load.ksh)

#!/bin/ksh
# 用法: extract_load.ksh   

export LOADFILE="/udb/db2aix01/file/file1/$1"
export USERID=$2
export PSWD=$3
export CurrentPWD=$PWD

echo `date`
# 1. 連接大型機並導出 IXF
db2 CONNECT TO DB2S390 USER $USERID USING $PSWD
echo "Extracting data from mainframe..."
db2 "EXPORT TO $LOADFILE.ixf OF IXF SELECT * FROM DBDEV.$1"
echo `date`
echo "Extract completed"

# 2. 斷開大型機,連接 AIX 目標庫
db2 DISCONNECT DB2S390
db2 CONNECT TO DDHAP00 USER xxxxx USING xxxxxx

# 3. 清理舊日誌並 LOAD
cp /dev/null /udb/db2aix01/file/file1/Load_$1.msg
echo `date`
echo "Loading data..."
db2 "LOAD FROM $LOADFILE.ixf OF IXF MODIFIED BY pagefreespace=0 totalfreespace=0 \
  ROWCOUNT 999999999 WARNINGCOUNT 9 MESSAGES Load_$1.msg \
  REPLACE INTO DBO.$1 STATISTICS NO INDEXING MODE AUTOSELECT"
echo `date`
echo "End of Load"

db2 DISCONNECT DDHAP00
cd $CurrentPWD

關鍵技術點

  • IXF 格式:自帶表結構與數據類型,跨平台遷移無需單獨 DDL。
  • LOAD 選項:
    • pagefreespace=0 totalfreespace=0:最大化頁填充,減少空間浪費。
    • ROWCOUNT 999999999 WARNINGCOUNT 9:允許大量數據與少量警告。
    • REPLACE:截斷表重載,適合全量刷新。
    • STATISTICS NO INDEXING MODE AUTOSELECT:載入後自動收集統計、延後建索引,提速。
  • DDL 同步:若目標表不存在,可用 db2look -d DB2S390 -t $1 -e -o ddl.sql 從大型機反向生成 DDL,先建表再 LOAD。

優勢總結

  1. 單入口、全自動,消除人工 FTP/轉碼環節。
  2. 大型機僅承擔 EXPORT 讀負載,AIX 承擔 LOAD 寫負載,雙邊壓力可控。
  3. IXF 自描述特性保證數據類型精準映射。
  4. 腳本參數化,新增表只需加入調度列表,擴展性極強。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved