Created
September 13, 2016 22:36
-
-
Save sravanrox/6e2bacd5413da1276ce8009742c9a1eb to your computer and use it in GitHub Desktop.
ASM DB Rman Backup script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/bin/sh | |
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1` | |
DATE=`/bin/date +%m%d%Y%H%M%S` | |
DOW=`date +%A | tr -s '[:upper:]' '[:lower:]'` | |
LOG=/home/oracle/logs | |
page_dba=xxx@gmail.com | |
NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS' | |
export NLS_DATE_FORMAT | |
ORACLE_SID=dbname | |
export ORACLE_SID | |
ORAENV_ASK=NO | |
RMAN_LOG_FILE=${LOG}/dbname_daily_backup.sh.${DATE}.out | |
if [ -f "$RMAN_LOG_FILE" ] | |
then | |
rm -f "$RMAN_LOG_FILE" | |
fi | |
echo >> $RMAN_LOG_FILE | |
chmod 666 $RMAN_LOG_FILE | |
echo Script $0 >> $RMAN_LOG_FILE | |
echo ==== started on `date` ==== >> $RMAN_LOG_FILE | |
echo >> $RMAN_LOG_FILE | |
ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1 | |
export ORACLE_HOME | |
ORACLE_USER=oracle | |
RMAN=$ORACLE_HOME/bin/rman | |
echo >> $RMAN_LOG_FILE | |
echo "RMAN: $RMAN" >> $RMAN_LOG_FILE | |
echo "ORACLE_SID: $ORACLE_SID" >> $RMAN_LOG_FILE | |
echo "ORACLE_USER: $ORACLE_USER" >> $RMAN_LOG_FILE | |
echo "ORACLE_HOME: $ORACLE_HOME" >> $RMAN_LOG_FILE | |
if [ "$DOW" = "sunday" ] | |
then | |
echo "Full backup requested" >> $RMAN_LOG_FILE | |
RMAN_COMMAND="backup as compressed backupset INCREMENTAL LEVEL 0 DATABASE" | |
else | |
echo "Default - incremental backup requested" >> $RMAN_LOG_FILE | |
RMAN_COMMAND="backup as compressed backupset INCREMENTAL LEVEL 1 DATABASE" | |
fi | |
CMD_STR=" | |
$RMAN target / msglog $RMAN_LOG_FILE append << EOF | |
run | |
{ | |
show all; | |
crosscheck archivelog all; | |
crosscheck backup; | |
delete noprompt expired backup; | |
delete noprompt expired archivelog all; | |
${RMAN_COMMAND}; | |
sql 'alter system archive log current'; | |
BACKUP AS COMPRESSED backupset ARCHIVELOG ALL DELETE INPUT; | |
BACKUP CURRENT CONTROLFILE; | |
} | |
EOF | |
" | |
# Initiate the command string | |
echo "$CMD_STR" >> $RMAN_LOG_FILE | |
if [ "$CUSER" = "root" ] | |
then | |
echo " dbname backup job start at `/bin/date`" | mail -s " dbname Database Backup Notification" $page_dba | |
su - $ORACLE_USER -c "$CMD_STR" >> $RMAN_LOG_FILE | |
RSTAT=$? | |
else | |
echo " dbname backup job start at `/bin/date`" | mail -s " dbname Database Backup Notification" $page_dba | |
sh -c "$CMD_STR" >> $RMAN_LOG_FILE | |
RSTAT=$? | |
fi | |
# --------------------------------------------------------------------------- | |
# Log the completion of this script. | |
# --------------------------------------------------------------------------- | |
if [ "$RSTAT" = "0" ] | |
then | |
LOGMSG="ended successfully" | |
echo " dbname backup completed Successfully end`/bin/date`" | mail -s " dbname Database END Backup Notification: SUCCESS" $page_dba | |
else | |
echo " dbname backup Failed please contact DBA immediately `/bin/date`" | mail -s " dbname Database END Backup Notification: FAILED" $page_dba | |
LOGMSG="ended in error" | |
fi | |
echo >> $RMAN_LOG_FILE | |
echo Script $0 >> $RMAN_LOG_FILE | |
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE | |
echo >> $RMAN_LOG_FILE | |
echo "Start delete obsolete backup " >> $RMAN_LOG_FILE | |
$RMAN target / msglog $RMAN_LOG_FILE append << EOF | |
allocate channel for maintenance type disk; | |
delete noprompt obsolete device type disk; | |
release channel; | |
EOF | |
echo "Complete delete obsolete backup " >> $RMAN_LOG_FILE | |
echo "Sync with recovery catalog" | |
$RMAN target / catalog user/password@catalog msglog $RMAN_LOG_FILE append << EOF | |
resync catalog; | |
EOF | |
exit $RSTAT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment