AIX SHELL RMAN 脚本报错



. ~/.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 <
参与14
X社区推广