Oracle 10g rac standby automatic log deletion script [plain] #! /Bin/bash export ORACLE_HOME =/opt/oracle/product/10.2.0/db_1 export ORACLE_SID = standby1 export ARCHIVE_DIR =/log/archivelog export LOG_FILE =/home/oracle/logs/del_archive.log if [! $1] then sn = 200 else sn = $1 fi echo "begin delete archivelog: 'date'..."> $ LOG_FILE if ['whoam '! = 'Oracle '] then echo "Error: You must be oracle to execute. ">>$ LOG_FILE exit 99 fi echo" delete archivelog thread 1 ">>$ LOG_FILE del_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.log set pagesize 0 feedback off verify off heading off echo off select max (sequence #) from v \ $ ARCHIVED_LOG where THREAD # = 1 and APPLIED = 'yes'; exit; XFF max_sn = 'cat/home/oracle/logs/tmp1.log 'rm/home/oracle/logs/tmp1.log-f max_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 )) done echo "delete archivelog thread 2" >>$ LOG_FILE del_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.log set pagesize 0 feedback off verify off heading off echo off select max (sequence #) from v \ $ ARCHIVED_LOG where THREAD # = 2 and APPLIED = 'yes'; exit; XFF max_sn = 'cat/home/oracle/logs/tmp2.log 'rm/home/oracle/logs/tmp2.log-f max_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 )) done echo "end delete archivelog: 'date '.... ">>$ LOG_FILE $ ORACLE_HOME/bin/rman target/<EOF> $ LOG_FILE crosscheck archivelog all; delete noprompt expired archivelog all; exit; EOF echo ".................................... ">>> $ LOG_FILE