使用“利用exp自动逻辑导出脚本”的结果自动导入的脚本

上一篇写了有关“利用exp自动逻辑导出脚本”的文章,但光有导出,没有导入,岂不麻烦,于是写了自动导入脚本,:)实际上是半自动.

脚本名:vmdbimport.ksh
说明:生成导入时要运行的脚本,但不自动运行.可根据需要对“要运行的导入脚本”进行适当的裁减。


#!/bin/ksh
# ++
if [ $# -ne 2 ]
then
   echo "+=========================================================================================="
   echo "| Usage: $0 <导出的备份目录> <目录数据库的NetService名>"
   echo "+=========================================================================================="
   exit 1
fi
# ++

THISDAY=$(date +%Y%m%d)
BASEDIR='/backup/vmdb/db'
ORACLE_HOME='/oracle/product/9ir2'


IMP_RELATE_DIR=${BASEDIR}/$1
TARGET_NETSERVICENAME=$2
TARGET_PASSFILE=$BASEDIR/vmdbimppasswd.map
TARGET_EXECUTER="$BASEDIR/vmdbimpexecuter_$THISDAY.ksh"

echo "++"
echo "info:"
echo "info:"

if [ ! -d $IMP_RELATE_DIR ]
then
   echo "warn: import directory $IMP_RELATE_DIR not exist . "
   exit 1
fi

if [ ! -f $TARGET_PASSFILE ]
then
   echo "warn: import database username/password map file $TARGET_PASSFILE not exist . "
   exit 1
fi

echo "info: start time = $(date +'%b %e %T') . "
echo "info: import directory=$IMP_RELATE_DIR files to database $TARGET_NETSERVICENAME ."
echo "info: generator import par file from directory ${IMP_RELATE_DIR} start."

touch $TARGET_EXECUTER
echo '#!/usr/bin/ksh' >> $TARGET_EXECUTER
echo 'echo "start time = $(date) ."' >> $TARGET_EXECUTER
find $IMP_RELATE_DIR -name "*.par" -type f -print | while read oline
do
   DIRNAME_OLINE=$(dirname $oline)
   BASENAME_OLINE=$(basename $oline)
   USERNAME=`echo $BASENAME_OLINE | cut -d. -f1`
   PASSWORD=`grep $USERNAME $TARGET_PASSFILE | cut -d: -f2`
   TABLENAME=`echo $BASENAME_OLINE | cut -d. -f2` 

   TARGET_IMPFILE=$DIRNAME_OLINE/$USERNAME.$TABLENAME.imp.par
   touch $TARGET_IMPFILE  
   echo "log=$DIRNAME_OLINE/$USERNAME.$TABLENAME.imp.log" >> $TARGET_IMPFILE
   echo "file=$DIRNAME_OLINE/$USERNAME.$TABLENAME.dmp" >> $TARGET_IMPFILE
   echo "userid=$USERNAME/$PASSWORD@$TARGET_NETSERVICENAME" >> $TARGET_IMPFILE
   echo "buffer=4096" >> $TARGET_IMPFILE
   echo "tables=($TABLENAME)" >> $TARGET_IMPFILE
   echo "ignore=y" >> $TARGET_IMPFILE
   echo "grants=n" >> $TARGET_IMPFILE
   echo "commit=y" >> $TARGET_IMPFILE
  
   echo "$ORACLE_HOME/bin/imp parfile=$TARGET_IMPFILE" >> $TARGET_EXECUTER
done
echo 'echo "start time = $(date) ."' >> $TARGET_EXECUTER
chown oracle:dba $TARGET_EXECUTER
chmod ug+x $TARGET_EXECUTER

echo "info: end time = $(date +'%b %e %T') . "

exit 0


文件:vmdbimppasswd.map
注:用户名密码对应文件


manage:manage
test:test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值