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

13同行回答

myguangzhoumyguangzhou技术经理Uniwise
还没解决掉吗?显示全部
还没解决掉吗?收起
互联网服务 · 2011-04-20
浏览2490
sukerrainersukerrainer学生ibm
单独实验rman那句试试显示全部
单独实验rman那句试试收起
生活生产服务 · 2011-04-19
浏览2536
cjmmikecjmmike经理snda
法上地发撒发生的显示全部
法上地发撒发生的收起
IT分销/经销 · 2011-04-19
浏览2475
zp_ccczp_ccc高级技术主管国内某金融科技公司
+58  sql "alter database backup controlfile to ''${$LOCAL_BACKUP_DIR}/$rmandate/controlfile_txt_${DATE_TAG}.bak'' reuse";这个也应该在RUN{}中吧。显示全部
+58  sql "alter database backup controlfile to ''${$LOCAL_BACKUP_DIR}/$rmandate/controlfile_txt_${DATE_TAG}.bak'' reuse";
这个也应该在RUN{}中吧。收起
互联网服务 · 2011-04-08
浏览3599
myguangzhoumyguangzhou技术经理Uniwise
加个append看看msglog XXXX append 显示全部
加个append看看
msglog XXXX append << EOF收起
互联网服务 · 2011-04-08
浏览3456
campspiritcampspirit技术经理中科软
vi看下文件,是不是因为windows和unix的字符编码不同造成的,后缀^M显示全部
vi看下文件,是不是因为windows和unix的字符编码不同造成的,后缀^M收起
互联网服务 · 2011-04-08
浏览3466
gaopengttttgaopengtttt数据库管理员利宝
如果去掉 msglog /oradata/rman/log/log.log 报下面的错rman.sh[41]:  ch1  type disk;^J  set limit channel ch1 kbytes 2000000;^J  backup   as compressed backupset  format = '$LOCAL_BACKUP_DIR/$r...显示全部
如果去掉 msglog /oradata/rman/log/log.log
报下面的错

rman.sh[41]:  ch1  type disk;^J  set limit channel ch1 kbytes 2000000;^J  backup   as compressed backupset  format = '$LOCAL_BACKUP_DIR/$rmandate/dbf_%d_%T_%s_%p'  ^J  database plus archivelog all delete input^J  format = '$LOCAL_BACKUP_DIR/$rmandate/arc_%d_%T_%s_%p'^J  release channel c1;^J}^Jrun^J{^J  backup^J           format = '$LOCAL_BACKUP_DIR/$rmandate/ctl_%d_%T_%s_%p'^J           current controlfile;^J }^Jrun^J{^J  backup^J           format = '$LOCAL_BACKUP_DIR/$rmandate/spfile_%d_%T_%s_%p'^J           spfile;^J }^Jsql "alter database backup controlfile to ''${$LOCAL_BACKUP_DIR}/$rmandate/controlfile_txt_${DATE_TAG}.bak'' reuse";^Jexit^JEOT ^J^Jcat /oradata/rman/log/log.log >> $BACKUP_LOG$DATE_TAG^Jrm -rf /oradata/rman/log/log.log^J^Jcat ^Jecho " ">> $BACKUP_LOG$DATE_TAG^Jecho " ">> $BACKUP_LOG$DATE_TAG^Jecho "---------  End RMAN  backup  at (`date '+%m/%d/%Y-%H:%M:%S'`)  ----------" >> $BACKUP_LOG$DATE_TAG^Jecho " ">> $BACKUP_LOG$DATE_TAG^Jecho " ">> $BACKUP_LOG$DATE_TAG^J: 0403-011 The specified substitution is not valid for this command.

这里的^J何解?收起
金融其它 · 2011-04-07
浏览3499
yukay2010yukay2010系统工程师神州数码系统集成服务有限公司
看不懂啊显示全部
看不懂啊收起
系统集成 · 2011-04-07
浏览3395
gaopengttttgaopengtttt数据库管理员利宝
+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收起
金融其它 · 2011-04-07
浏览3626
gaopengttttgaopengtttt数据库管理员利宝
rman.sh[41]: $BACEOT: 0403-011 The specified substitution is not valid for this command.   +41  rman target / nocatalog msglog /oradata/rman/log/log.log 显示全部
rman.sh[41]: $BACEOT: 0403-011 The specified substitution is not valid for this command.

   +41  rman target / nocatalog msglog /oradata/rman/log/log.log <收起
金融其它 · 2011-04-07
浏览3566
X社区推广