ago520 发表于 2013-1-25 21:53:32

Linux shell脚本操作DB2分区表导出数据文件

#! /bin/bash# Description: sh db2# chkconfig: 35 55 25# Copyright (c) 2010-08 Gerry# db2.sh#===============================# user conifg here# param is table name ! you must put upon string heretable_name="TEST_PARTITION"backup_date="6"#===============================backup_tablename="backup_$table_name`date +%Y%m%d%H%M%S`"sql_3="DROP TABLE $backup_tablename"schar="t.*"sql_export="select "${schar}" from $backup_tablename as t"sql_partitionno="SELECTdatapartitionnameFROM SYSIBM.SYSDATAPARTITIONSwhere tabschema='XXXXDB' and tabname='$table_name' and lowvalue=(select ''''|| to_char(year(current date - $backup_datemonths)||'-'||month(current date -$backup_datemonths)||'-01','yyyy-MM-dd')||'''' from sysibm.sysdummy1)"#echo $sql_partitionno#select parnodb2 connect to xxxxdb user username using passwordsdata0=`db2 -x "$sql_partitionno"`db2 connect reset#echo "=======$sdata0========="#step 0if [ "${sdata0:0:1}" != "P" ] ; then   echo "not data exit step 0..."   exit 1fi#getdate6thissql_pathdate6="select year(current date - $backup_datemonths)||'-'||month(current date - $backup_datemonths)||'-01' from sysibm.sysdummy1"db2 connect to xxxxdb user username using passwordsdata0_1=`db2 -x "$sql_pathdate6"`db2 connect resetfilepath="/db2users/backup/"$table_name"-"${sdata0_1:0:9}""#echo "==================== $filepath ============= $sql_pathdate6 ========="sdata1="0"sdata2="0"sdata3="0"sdata4="0"sql_2="ALTER TABLE $table_name DETACH PARTITION $sdata0 into $backup_tablename"# delete the part from db2 tabledb2 connect to xxxxdb user username using passwordsdata1=`db2 -x "$sql_2"`db2 connect reset#echo "==========$sql_2=============="#step 1if [ "${sdata1:0:8}" = "DB20000I" ] ; then    echo "step1 sucessful"    db2 connect to xxxxdb user username using password    sdata2=`db2 -x export to $filepath of del $sql_export`    db2 connect resetelse    echo "step 1 quit..."    exit 1fi#echo "==============$sdata2================="#step 2if [ "${sdata2:0:8}" = "SQL3104N" ] ; then    echo "step2 successful"    db2 connect to xxxxdb user username using password    sdata3=`db2 -x "$sql_3"`    db2 connect resetelse    echo "step 2 quit"    exit 1fi#step 3if [ "${sdata3:0:8}" = "DB20000I" ] ; then   echo "step3 successful"else   echo "step 3 quit"   exit 1fi 
页: [1]
查看完整版本: Linux shell脚本操作DB2分区表导出数据文件