Oracle多例項資料庫備份指令碼

lovestanford發表於2013-12-03
最近對客戶資料庫伺服器上的備份指令碼進行了修改,主要使用Shell指令碼循,簡化程式碼結構。
###
#!/bin/bash
sids1="12 dbname list"
sids2=" 12 dbname list"
#this is instance list
sids3=$sids1$sids2
export ORACLE_HOME=/u01/app/oracle/11gR2/dbhome
DA2=`date "+%Y%m%d"`
dmpfil=" "
lgfile=" "
attach=" "
cnti=1
tt_fail=" "
tt_succ=" "
path=/ora11gbackup/EXP_BAK/
logpath=/ora11gbackup/EXP_BAK/EXP_HIS_LOG
TO_MAIL=my_email
CC_MAIL=dba_email
##clean old data
find $path -name '*xxxprod*dmp*' -a -mtime +2 -exec rm {} \;
find $logpath -name '*xxxx*.log*' -a -mtime +30 -exec rm {} \;
##switch directory
cd $path
for dbsid in $sids3 ;
do
    export ORACLE_SID=$dbsid
    dmpfil=xxxprod_Full_expdp_$dbsid$DA2.dmp
    lgfile=xxxprod_Full_expdp_$dbsid$DA2.log
    attach=$path$lgfile
    tt_fail="**Warning**_xxxx(9.149.xx.xx)_($dbsid)_($cnti)_Full_expdp failed on `date "+%Y%m%d"`"
    tt_succ="xxx(9.149.xx.xx)_($dbsid)_($cnti)_Full_expdp successful on `date "+%Y%m%d"`"
    expdp \'/ as sysdba \' dumpfile=$dmpfil logfile=$lgfile full=y directory=expdp_bk PARALLEL=2
    #expdp \'/ as sysdba \' dumpfile=expdp_bk:$dmpfil logfile=$lgfile full=y  PARALLEL=2
    #
    cat $lgfile| grep -i "ORA-"
    if [ "$?" -eq 0 ] ; then
        mailx -s  $tt_fail  -c $CC_MAIL $TO_MAIL
        #echo $tt_fail
    else
        mailx -s  $tt_succ  -c $CC_MAIL $TO_MAIL
        #echo $tt_succ
    fi
    let "cnti=cnti+1 " #sequence of instance
done
mv *.log  $logpath
##end

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21754115/viewspace-1061999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章