实用脚本--遍历oratab,批量执行数据库命令

来源:互联网 发布:手机淘宝怎么清理缓存 编辑:程序博客网 时间:2024/04/30 18:07


#!/bin/bash#Init env#DBTMP=/tmp/db_stat#mkdir -p $DBTMPASMDISK=+RECO1ORATAB=/var/opt/oracle/oratabget() {$ORACLE_HOME/bin/rman target / <<EOFCONFIGURE SNAPSHOT CONTROLFILE NAME TO '$ASMDISK/$DBNAME/snapcf_$DBNAME.f';quitEOF}#From dbstartcat $ORATAB | while read LINEdocase $LINE in  \#*)                ;;        #comment-line in oratab  *)  ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -`  #Incorrent info , then skip .LINE=null,SID=null,+ASM  if [ -z "`echo $LINE`" ] ; then    continue  fi  if [ "$ORACLE_SID" = '*' ] ; then    ORACLE_SID=""    continue  fi  DBNAME=$ORACLE_SID  ORACLE_SID=$ORACLE_SID"1"  export ORACLE_SID  if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then      continue  fi  ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -`  export ORACLE_HOME  # Called scripts#echo $DBNAME#echo $ORACLE_SID#echo $ASMDISK  get  echo DONE with $ORACLE_SID  ;;esacdone##Direct by renfengjun



上面的脚本遍历后执行rman命令。使用时可以自行修改。下面的另一个例子,执行sql语句。生成log文件。snapshot.sql大家可以自行书写。

#!/bin/bash#Init envDBTMP=/tmp/db_statmkdir -p $DBTMPORATAB=/var/opt/oracle/oratabget() {$ORACLE_HOME/bin/sqlplus -S / as sysdba <<EOF    create pfile='$DBTMP/pfile_$ORACLE_SID.ora' from spfile ;    spool $DBTMP/$ORACLE_SID.log    @snapshot.sql    prompt **********DB $ORACLE_SID    spool offEOF}#From dbstartcat $ORATAB | while read LINEdocase $LINE in  \#*)                ;;        #comment-line in oratab  *)  ORACLE_SID=`echo $LINE | awk -F: '{print $1}' -`  #Incorrent info , then skip .LINE=null,SID=null,+ASM  if [ -z "`echo $LINE`" ] ; then    continue  fi  if [ "$ORACLE_SID" = '*' ] ; then    ORACLE_SID=""    continue  fi  ORACLE_SID=$ORACLE_SID"1"  export ORACLE_SID  if [ `echo $ORACLE_SID | cut -b 1` = '+' ]; then      continue  fi  ORACLE_HOME=`echo $LINE | awk -F: '{print $2}' -`  export ORACLE_HOME  # Called scripts  get  echo DONE with $ORACLE_SID  ;;esacdone##Direct by renfengjun





遍历后执行
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '$ASMDISK/$DBNAME/snapcf_$DBNAME.f';
命令。使用时可以自行修改此命令。
0 0
原创粉丝点击