oracle 10g rac standby 归档日志自动删除脚本

来源:互联网 发布:单片机交通灯电路图 编辑:程序博客网 时间:2024/05/07 17:45
#!/bin/bashexport ORACLE_HOME=/opt/oracle/product/10.2.0/db_1export ORACLE_SID=standby1export ARCHIVE_DIR=/log/archivelogexport LOG_FILE=/home/oracle/logs/del_archive.logif [ ! $1 ]then     sn=200else     sn=$1fiecho "begin delete archivelog: `date`.......">>$LOG_FILEif [ `whoami` != 'oracle' ]thenecho "Error: You must be oracle to execute.">>$LOG_FILEexit 99fiecho "delete archivelog thread 1">>$LOG_FILEdel_seq=`ls -tr $ARCHIVE_DIR/|grep -v stdarch |grep arch_1 | head -1|cut -f3 -d_`$ORACLE_HOME/bin/sqlplus -silent "/ as sysdba" <<XFF>/home/oracle/logs/tmp1.logset pagesize 0 feedback off verify off heading off echo offselect max(sequence#) from v\$ARCHIVED_LOG where THREAD#=1 and APPLIED='YES';exit;XFFmax_sn=`cat /home/oracle/logs/tmp1.log`rm /home/oracle/logs/tmp1.log -fmax_sn=$(( $max_sn - $sn ))while [[ ${del_seq} -lt ${max_sn} ]]do  echo "${ARCHIVE_DIR}/arch_1_${del_seq}_794450242.arc">>$LOG_FILE  rm ${ARCHIVE_DIR}/arch_1_${del_seq}_794450242.arc -f  del_seq=$(( $del_seq + 1 ))doneecho "delete archivelog thread 2">>$LOG_FILEdel_seq=`ls -tr $ARCHIVE_DIR/|grep -v stdarch |grep arch_2 | head -1|cut -f3 -d_`$ORACLE_HOME/bin/sqlplus -silent "/ as sysdba" <<XFF>/home/oracle/logs/tmp2.logset pagesize 0 feedback off verify off heading off echo offselect max(sequence#) from v\$ARCHIVED_LOG where THREAD#=2 and APPLIED='YES';exit;XFFmax_sn=`cat /home/oracle/logs/tmp2.log`rm /home/oracle/logs/tmp2.log -fmax_sn=$(( $max_sn - $sn ))while [[ ${del_seq} -lt ${max_sn} ]]do  echo "${ARCHIVE_DIR}/arch_2_${del_seq}_794450242.arc">>$LOG_FILE  rm ${ARCHIVE_DIR}/arch_2_${del_seq}_794450242.arc -f  del_seq=$(( $del_seq + 1 ))doneecho "end delete archivelog: `date`....">>$LOG_FILE$ORACLE_HOME/bin/rman target / <<EOF>>$LOG_FILEcrosscheck archivelog all;delete noprompt expired archivelog all;exit;EOFecho "....................................">>$LOG_FILE

原创粉丝点击