Solved

Adding Logfile to RMAN Email function

Posted on 2009-04-13
2
1,729 Views
Last Modified: 2013-12-18
Listed below you will find my RMAN Shell script. I need to add the logfile results of this RMAN script to the email function whether it succeeds or fails. Any simple recommendations?


#!/bin/ksh
#----------------------------------------------
export ORACLE_HOME=/opt/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=act1g
export PATH=$PATH:$ORACLE_HOME/bin
#----------------------------------------------
MAIL_LIST="jdoe@act1g.com"
#----------------------------------------------
rman nocatalog <<EOF
connect target sys/0racle10g@act1g
run {allocate channel oem_backup_disk1 type disk format '/opt/u08/orabkup/rman/full_bkup/act1g/full_bkp_%d_set%s_piece%p_%T
_%U';
BACKUP FULL
DATABASE PLUS ARCHIVELOG;
backup current controlfile format '/opt/u08/orabkup/rman/full_bkup/act1g/ctl_bkp_%s_%p';
backup spfile format '/opt/u08/orabkup/rman/full_bkup/act1g/sp_bkp_%s_%p';
crosscheck backup;
DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 14 DAYS;
release channel oem_backup_disk1;
}
EOF
#
if [ $? -ne 0 ]; then
SUBJ="act1g RMAN Backup Failed"
TO=jdoe@act1g.com
(
cat << !
To : ${TO}
Subject : ${SUBJ}
Cc : ${CC}
!
cat << !
act1g Full RMAN Backup Failed. Please check backups.
!
#uuencode ${1} ${1}
!
) | /usr/lib/sendmail -v ${TO} ${CC}
EOF
#
else
SUBJ="act1g RMAN Backup Completed Successful"
TO=jdoe@act1g.com
(
cat << !
To : ${TO}
Subject : ${SUBJ}
Cc : ${CC}
!
cat << !
act1g Full RMAN Backup Completed Successfully.
!
#uuencode ${1} ${1}
!
) | /usr/lib/sendmail -v ${TO} ${CC}
fi
#----------------------------------------------
date
#----------------------------------------------
0
Comment
Question by:Omega002
2 Comments
 
LVL 16

Accepted Solution

by:
Richard Olutola earned 250 total points
ID: 24135616
 You need to define RMANLOG variables to point to your a designated location on server.

  R.

# Check status of RMAN backup and email status
RMAN_EXIT=$?
#
case $RMAN_EXIT in
0)mail -s "SUCCESS" $MAIL_LIST<$RMANLOG
   ;;
*)mail -s "FAILURE with exit code: $RMAN_EXIT" $MAIL_LIST<$RMANLOG
  exit 1
   ;;
esac

Open in new window

0
 
LVL 4

Assisted Solution

by:dkaisla
dkaisla earned 250 total points
ID: 24145250
The way I do it, I put the rman script in another file then call it through the shell script. Here's my approach assuming your scripts are located in $SCRIPTS.

#!/bin/ksh
#----------------------------------------------
export ORACLE_HOME=/opt/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=act1g
export PATH=$PATH:$ORACLE_HOME/bin
 
#### <added by dkaisla>
working_dir=/opt/u08/orabkup/rman/full_bkup/act1g/
SCRIPTS=/opt/u08/orabkup/rman/full_bkup/act1g/
export SCRIPTS 
BDATE=`date +%m%d%y`
LOG=$SCRIPTS/logs/$ORACLE_SID'_'$BDATE.log
 
cd $working_dir
#### </dkaisla>
 
#----------------------------------------------
MAIL_LIST="jdoe@act1g.com"
#----------------------------------------------
 
#### <added by dkaisla>
date|tee $LOG
rman target sys/0racle10g@act1g @$SCRIPTS/$ORACLE_SID'_Bkup.rman' |tee -a $LOG
date|tee -a $LOG
 
x=`grep -c 'RMAN-' $LOG`
if [ $x -eq 0 ]
then
	echo "BACKUP SUCCESSFUL"|tee -a $LOG
	mailx -s "BACKUP SUCCESSFUL" $MAIL_LIST <$LOG
else
	echo " "|tee -a $LOG
	echo " "|tee -a $LOG
	echo "ERROR(S) ENCOUNTERED DURING BACKUP"|tee -a $LOG
	echo " "|tee -a $LOG
	echo "BACKUP FAILED"|tee -a $LOG
	mailx -s "BACKUP FAILED" $MAIL_LIST <$LOG
fi
done
exit
#### </dkaisla>
 
#
#if [ $? -ne 0 ]; then
#SUBJ="act1g RMAN Backup Failed"
#TO=jdoe@act1g.com
#(
#cat << !
#To : ${TO}
#Subject : ${SUBJ}
#Cc : ${CC}
#!
#cat << !
#act1g Full RMAN Backup Failed. Please check backups.
#!
#uuencode ${1} ${1}
#!
#) | /usr/lib/sendmail -v ${TO} ${CC}
#EOF
#
#else
#SUBJ="act1g RMAN Backup Completed Successful"
#TO=jdoe@act1g.com
#(
#cat << !
#To : ${TO}
#Subject : ${SUBJ}
#Cc : ${CC}
#!
#cat << !
#act1g Full RMAN Backup Completed Successfully.
#!
##uuencode ${1} ${1}
#!
#) | /usr/lib/sendmail -v ${TO} ${CC}
#fi
#----------------------------------------------
#date
#----------------------------------------------

Open in new window

0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
execute immediate plsql block 5 58
oracle- set role and grant privileges 6 40
Create Index on a Materialized View 5 35
SQL Workhours Count beetween Workhours 3 26
Note: You must have administrative privileges in order to create/edit Sharing Rules. Salesforce.com (http://www.salesforce.com) (SFDC) is a cloud-based customer relationship management (CRM) system. It is a database most commonly used by sales an…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
This video explains what a user managed backup is and shows how to take one, providing a couple of simple example scripts.

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question