技术开发 频道

DB2数据提取转化的一个脚本

    【IT168 技术文档】为把数据从大型机迁移到AIX平台上的DB2 UDB , 其过程通常事实这样的:登录到大型机,提取数据到一个文件中,ftp文件到AIX机器上, 然后将数据装载到DB2 UDB。 这需要两个不同的工作环境。

    替代方案是:通过只使用一个脚本,在DB2 UDB的AIX环境下我可以完成整个过程。这个过程非常快, 不会加重大型机或AIX环境的负担。

    你所需要做的是使用大型机连接,再用EXPORT命令来听取数据。 例如:

    db2 connect to DB2S390 USER xxxxxx USING yyyy

    db2 "export to exportfile.ixf of IXF select * from SYSIBM.SAMPLE"

    你可以再将输出的文件导入装有AIX系统的DB2 UDB中。我已经写了一个在AIX上的Korn shell脚本, 只需给出图表名称,用户名和密码,就可用一个命令从大型机上提取和加载数据。同时值得提出的是使用db2look命令,你可以用大型机的DB2 Connect连接作为数据提取DDL。

#!/bin/ksh # Extract data from Mainframe and Load into the # Specified Table in the DDHAP00 Database # export LOADFILE="/udb/db2aix01/file/file1/$1" export USERID=$2 export PSWD=$3 export CurrentPWD=$PWD # Save current directory echo 'date' # Connect to mainframe db2 CONNECT TO DB2S390 USER $USERID using $PSWD echo "Extracting data from mainframe..." # Extract data from mainframe db2 "export to $LOADFILE.ixf of IXF select * from DBDEV.$1" echo 'date' echo "Extract completed" # Disconnect from mainframe db2 DISCONNECT DB2S390; # Connect to database on AIX db2 CONNECT TO DDHAP00 USER xxxxx USING xxxxxx; # Clear load messages file cp /dev/nul /udb/db2aix01/file/file1/Load_$1.msg echo 'date' echo "Loading data..." # Load data from flat file 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; # Reset to previous directory cd $PWD
0
相关文章