Quantcast
Channel: Doyensys Allappsdba Blog..
Viewing all articles
Browse latest Browse all 1640

Script to delete RMAN backupsets older than a specified number of days

$
0
0
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!"

Viewing all articles
Browse latest Browse all 1640

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>