DAYSTOKEEP=60
# -- Do not change anything below this line ---------------------------
CMDFILE=/tmp/rmanpurge$$.rcv
LOGFILE=/tmp/rmanprige$$.log
if [ ! -x $ORACLE_HOME/bin/rman ]; then
   echo "ERROR: RMAN not found or ORACLE_HOME not set."
   exit 8
fi
if [ ! $ORACLE_SID ]; then
   echo "ERROR: ORACLE_SID not set."
   exit 8
fi
if [ ! $1 ]; then
   echo "USAGE: $0 CatalogConnectString"
   exit;
else
   RCVCAT=$1
fi;
echo "Delete RMAN backupsets older than $DAYSTOKEEP days for db $ORACLE_SID."
echo "ALLOCATE CHANNEL FOR DELETE TYPE 'SBT_TAPE';" >>$CMDFILE
# List all old entries that needs to be deleted
(rman rcvcat $RCVCAT target / <<-EOF
        list backupset of database
                from time 'SYSDATE-3000' until time 'SYSDATE-$DAYSTOKEEP';
        exit;
        EOF
) | grep RMAN-06233 | while read filler key filler filler date rest
do
        echo "# Delete backupset $key dated $date..." >>$CMDFILE
        echo "CHANGE BACKUPSET $key DELETE;"          >>$CMDFILE
done
echo "RELEASE CHANNEL;" >>$CMDFILE
# Delete the old entries
rman rcvcat $RCVCAT target / cmdfile $CMDFILE
echo "Done!"
Recent Posts

Start typing and press Enter to search