#!/bin/bash ###################################################################### # Author : Vishal Gupta # Date Created : 23-Jun-2008 # Purpose : Check RMAN backup status # # Modification History # Date Ver Author Remarks # -------- --- -------------- --------------------------------------- # 23/06/08 0.1 Vishal Gupta First Draft # # ###################################################################### ################################################################################ # RMAN Repository database variables ################################################################################ RMANCAT_USER=rmanrep RMANCAT_PASSWORD_ENCRYPTED=HP0aEW RMANCAT_SERVICE=RMAN01P EMAIL_ADDRESSES="fm.eu.DBAAlerts@rabobank.com" UNENCRY=/appl/oracle/admin/scripts/unencry LOGDIR=/appl/oracle/admin/logs LOGFILE=${LOGDIR}/`basename $0`_`date '+%Y%m%d_%H%M%S'`.log LOG_KEEPDAY=14 export ORACLE_HOME=/appl/oracle/product/10.2.0 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ###################################### # M A I N E X E C U T I O N ###################################### find ${LOGDIR} -name `basename $0`*log -mtime +${LOG_KEEPDAY} -exec rm {} \; sqlplus -s /nolog >>${LOGFILE} < sysdate - 1 + (1/24) -- exclude manual list command errors and overall session status. -- individual backup/restore/delete step errors will still be reported AND s.operation NOT IN ('RMAN' ,'LIST' ,'REPORT' ,'DUPLICATE DB' -- used to clone db on non-prod ,'RESTORE' ,'RESTORING AND APPLYING LOGS' ,'RECOVER AND APPLYING LOGS' ) AND s.status NOT IN ('COMPLETED' ,'RUNNING' ,'RUNNING WITH WARNINGS' ,'COMPLETED WITH WARNINGS' ) ORDER BY start_time asc; PROMPT PROMPT PROMPT Last successful backup PROMPT ####################### COLUMN max_end_time FORMAT a30 HEADING "Last Successfull DB Backup" COLUMN backedup_yesterday FORMAT a30 HEADING "Backed up in last 24hrs ?" SELECT d.name , to_char(max(s.end_time),'dd-MON-YY hh24:mi:SS') max_end_time , CASE WHEN max(s.end_time) > trunc(sysdate -1) THEN 'Yes' ELSE 'No' END backedup_yesterday FROM rc_database d , rc_rman_status s WHERE d.DB_KEY = s.db_key AND d.DBINC_KEY = s.DBINC_KEY AND d.NAME = s.db_name AND s.row_type = 'COMMAND' AND s.operation = 'BACKUP' AND s.object_type in ( 'DB FULL','DB INCR') AND s.status = 'COMPLETED' GROUP BY d.name ORDER by d.name ; EOF cat $LOGFILE |mailx -s "Oracle RMAN Backup status ** MORNING CHECK **" "${EMAIL_ADDRESSES}"