After realizing that I’m the only dba left standing at this company, I’ve
decided that our backup and recovery procedures need revisiting.
Specifically the way in which we verify our backups ran successfully each
night.
We currently have five 8.1.7.2 oltp’s in archivelog mode that are backed up
via RMAN using a recovery catalog, and four 9.2.0.4 warehouse/ods databases
in noarchivelog mode that are backed up via RMAN using the individual
control files.
I am confident in the recoverability of our backups…they’ve been tested
several times…as long as they successfully complete. Currently I am emailed
the full output of each backup script for each database. We use 2 separate
scripts. 1 for oltp’s and 1 for warehouse.
This is all fine and dandy but to really keep up with it all, that means
scanning 9 backup logs each morning.
<whew! >
my question is this…for those of you using RMAN as your backup utility, how
do you ensure your backups complete successfully and are valid? Do you
query the catalog directly? Do you have a script that validates the
backups? Do you have a single email with nice discreet output for each
database? �?.are you willing to share you scripts? �?
…and while I’m at it. …can anyone poke any holes in the following scripts?
…I know they aren’t as elegant as some…but they work and have been tested.
rm /oracle_backup/$ORACLE_SID/*
$ORACLE_HOME/bin/rman < <EOF
set dbid={db id…so no one can mess with the tnsnames and screw with out
backups…it is well know that the dba group will have to change this in the
event of some event that would change the dbid}
connect target
connect catalog username/password@{recovery catalog db}
run{
allocate channel d1 type disk;
backup database format '/oracle_backup/$ORACLE_SID/%U ' include current
controlfile;
}
sql "alter system switch logfile ";
sql "alter system archive log all ";
sql "alter database backup controlfile to trace ";
sql "alter database backup controlfile to
' '/oracle_backup/$ORACLE_SID/prd1_ctl ' ' ";
exit;
EOF
#
find ${ARCH_DEST}*.arc -type f -mtime +2 | while read ARCH_LOG; do
echo "removing "$ARCH_LOG
rm $ARCH_LOG
done