+1 #!/bin/bash +2 . ~/.profile +3 LOCAL_BACKUP_DIR=/oradata/rman/rman +4 BACKUP_LOG=/oradata/rman/log/rmanlog +5 REMAINED_DAY=1 +6...
显示全部+1 #!/bin/bash
+2 . ~/.profile
+3 LOCAL_BACKUP_DIR=/oradata/rman/rman
+4 BACKUP_LOG=/oradata/rman/log/rmanlog
+5 REMAINED_DAY=1
+6 DATE_TAG=`date +%Y%m%d`
+7 RMAN=${ORACLE_HOME}/bin/rman
+8 export V_MAIL_LIST="carl.gao@libertymutual.com.cn"
+9 export LOCAL_BACKUP_DIR
+10 export BACKUP_LOG
+11 export REMAINED_DAY
+12 export DATE_TAG
+13 export RMAN
+14
+15 echo " ">> $BACKUP_LOG$DATE_TAG
+16 echo " ">> $BACKUP_LOG$DATE_TAG
+17
+18 echo " --------- Begin to remove old rman backupset at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" > $BACKUP_LOG$DATE_TAG
+19 cd $LOCAL_BACKUP_DIR
+20 find ./ -type d -mtime +$REMAINED_DAY > /tmp/tmp_rman.log
+21 for dir in `cat /tmp/tmp_rman.log`
+22 do
+23 rm -fr $dir
+24 done
+25 echo " --------- Finished removing old rman backupset at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TA
G
+26
+27 rmandate=`date +%Y%m%d`
+28 if test ! -d $LOCAL_BACKUP_DIR/${rmandate};then
+29 cd $LOCAL_BACKUP_DIR
+30 mkdir ${rmandate}
+31 if [ $? -eq 0 ] ;then
+32 echo "Backup directory created successfully!" >> $BACKUP_LOG$DATE_TAG
+33 else
+34 echo "ERROR: When create backup directory, error occurred!" >> $BACKUP_LOG$DATE_TAG
+35 exit 1
+36 fi
+37 fi
+38
+39 echo "--------- Begin CAS RMAN backup at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TAG
+40
+41 rman target / nocatalog msglog /oradata/rman/log/log.log <
+42
+43 run
+44 {allocate channel ch1 type disk;
+45 set limit channel ch1 kbytes 2000000;
+46 backup as compressed backupset format = '$LOCAL_BACKUP_DIR/$rmandate/dbf_%d_%T_%s_%p'
+47 database plus archivelog all delete input
+48 format = '$LOCAL_BACKUP_DIR/$rmandate/arc_%d_%T_%s_%p'
+49 release channel c1;}
+50 run
+51 {backup
+52 format = '$LOCAL_BACKUP_DIR/$rmandate/ctl_%d_%T_%s_%p'
+53 current controlfile;}
+54 run
+55 {backup
+56 format = '$LOCAL_BACKUP_DIR/$rmandate/spfile_%d_%T_%s_%p'
+57 spfile;}
+58 sql "alter database backup controlfile to ''${$LOCAL_BACKUP_DIR}/$rmandate/controlfile_txt_${DATE_TAG}.bak'' reuse";
+59 exit
+60 EOT
+61
+62 cat /oradata/rman/log/log.log >> $BACKUP_LOG$DATE_TAG
+63 rm -rf /oradata/rman/log/log.log
+64
+65 cat
+66 echo " ">> $BACKUP_LOG$DATE_TAG
+67 echo " ">> $BACKUP_LOG$DATE_TAG
+68 echo "--------- End RMAN backup at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TAG
+69 echo " ">> $BACKUP_LOG$DATE_TAG
+70 echo " ">> $BACKUP_LOG$DATE_TAG
收起