. ~/.profileLOCAL_BACKUP_DIR=/oradata/rman/rmanBACKUP_LOG=/oradata/rman/log/rmanlogREMAINED_DAY=1DATE_TAG=`date +%Y%m%d`RMAN=${ORACLE_HOME}/bin/rmanexport LOCAL_BACKUP_DIRexport BACKUP_LOGexport REMAINED_DAYexport DATE_TAGexport RMANecho " ">> $BACKU...
显示全部
. ~/.profile
LOCAL_BACKUP_DIR=/oradata/rman/rman
BACKUP_LOG=/oradata/rman/log/rmanlog
REMAINED_DAY=1
DATE_TAG=`date +%Y%m%d`
RMAN=${ORACLE_HOME}/bin/rman
export LOCAL_BACKUP_DIR
export BACKUP_LOG
export REMAINED_DAY
export DATE_TAG
export RMAN
echo " ">> $BACKUP_LOG$DATE_TAG
echo " ">> $BACKUP_LOG$DATE_TAG
echo " --------- Begin to remove old rman backupset at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" > $BACKUP_LOG$DATE_TAG
cd $LOCAL_BACKUP_DIR
find ./ -type d -mtime +$REMAINED_DAY > /tmp/tmp_rman.log
for dir in `cat /tmp/tmp_rman.log`
do
rm -fr $dir
done
echo " --------- Finished removing old rman backupset at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TAG
rmandate=`date +%Y%m%d`
if test ! -d $LOCAL_BACKUP_DIR/${rmandate};then
cd $LOCAL_BACKUP_DIR
mkdir ${rmandate}
if [ $? -eq 0 ] ;then
echo "Backup directory created successfully!" >> $BACKUP_LOG$DATE_TAG
else
echo "ERROR: When create backup directory, error occurred!" >> $BACKUP_LOG$DATE_TAG
exit 1
fi
fi
echo "--------- Begin CAS RMAN backup at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TAG
rman target / nocatalog msglog /oradata/rman/log/log.log <run
{allocate channel ch1 type disk;
set limit channel ch1 kbytes 2000000;
backup as compressed backupset format = '$LOCAL_BACKUP_DIR/$rmandate/dbf_%d_%T_%s_%p'
database plus archivelog all delete input
format = '$LOCAL_BACKUP_DIR/$rmandate/arc_%d_%T_%s_%p'
release channel c1;}
run
{backup
format = '$LOCAL_BACKUP_DIR/$rmandate/ctl_%d_%T_%s_%p'
current controlfile;}
run
{backup
format = '$LOCAL_BACKUP_DIR/$rmandate/spfile_%d_%T_%s_%p'
spfile;}
sql "alter database backup controlfile to ''${$LOCAL_BACKUP_DIR}/$rmandate/controlfile_txt_${DATE_TAG}.bak'' reuse";
exit
EOT
cat /oradata/rman/log/log.log >> $BACKUP_LOG$DATE_TAG
rm -rf /oradata/rman/log/log.log
cat
echo " ">> $BACKUP_LOG$DATE_TAG
echo " ">> $BACKUP_LOG$DATE_TAG
echo "--------- End RMAN backup at (`date '+%m/%d/%Y-%H:%M:%S'`) ----------" >> $BACKUP_LOG$DATE_TAG
echo " ">> $BACKUP_LOG$DATE_TAG
echo " ">> $BACKUP_LOG$DATE_TAG
报错如下:rman.sh[41]: $BACEOT: 0403-011 The specified substitution is not valid for this command.
奇怪了
就是这行
rman target / nocatalog msglog /oradata/rman/log/log.log <收起