Thursday, January 31, 2008

Online Backup Shell Script for Full DB & archivelogs refer to sample RMAN script (/install_path/netbackup/ext/db_ext/oracle/samples/rman)

#!/bin/sh
# $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $
#bcpyrght
#***************************************************************************
#$VRTScprght:Copyright 1993-2003 VERITAS Software Corporation,All Rights Reserved $
#***************************************************************************
#ecpyrght
#hot_database_backup.sh
# Determine the user which is executing this script.
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
# Put output in .out. Change as desired.
# Note: output directory requires write permission.
RMAN_LOG_FILE=${0}.out
# You delete the output file so that backup information does not accumulate.
# If not, delete the following lines.

if [ -f "$RMAN_LOG_FILE" ]
then
rm -f "$RMAN_LOG_FILE"
fi
# Initialize the log file.
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
# Log the start of this script.
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

# Replace /db/oracle/product/ora81, below, with the Oracle home path.
ORACLE_HOME=/db/oracle/product/ora81
export ORACLE_HOME
# Replace ora81, below, with the Oracle SID of the target database.
ORACLE_SID=ora81
export ORACLE_SID
# Replace ora81, below, with the Oracle DBA user id (account).
ORACLE_USER=ora81
# Set the target connect string. Replace "sys/manager", below, with the target connect string.
TARGET_CONNECT_STR=sys/manager
# Set the Oracle Recovery Manager name.
RMAN=$ORACLE_HOME/bin/rman
# Print out the value of the variables set by this script.
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
# Print out the value of the variables set by bphdb.
echo >> $RMAN_LOG_FILE
echo "NB_ORA_FULL: $NB_ORA_FULL" >> $RMAN_LOG_FILE
echo "NB_ORA_INCR: $NB_ORA_INCR" >> $RMAN_LOG_FILE
echo "NB_ORA_CINC: $NB_ORA_CINC" >> $RMAN_LOG_FILE
echo "NB_ORA_SERV: $NB_ORA_SERV" >> $RMAN_LOG_FILE
echo "NB_ORA_POLICY: $NB_ORA_POLICY" >> $RMAN_LOG_FILE
# NOTE: This script assumes that the database is properly opened.
# If desired, this would be the place to verify that.
echo >> $RMAN_LOG_FILE
if [ "$NB_ORA_FULL" = "1" ]
then
echo "Full backup requested" >> $RMAN_LOG_FILE
BACKUP_TYPE="INCREMENTAL LEVEL=0"
elif [ "$NB_ORA_INCR" = "1" ]
then
echo "Differential incremental backup requested" >> $RMAN_LOG_FILE
BACKUP_TYPE="INCREMENTAL LEVEL=1"
elif [ "$NB_ORA_CINC" = "1" ]
then
echo "Cumulative incremental backup requested" >> $RMAN_LOG_FILE
BACKUP_TYPE="INCREMENTAL LEVEL=1 CUMULATIVE"
elif [ "$BACKUP_TYPE" = "" ]
then
echo "Default - Full backup requested" >> $RMAN_LOG_FILE
BACKUP_TYPE="INCREMENTAL LEVEL=0"
fi
# Call Recovery Manager to initiate the backup. This example does not use a Recovery Catalog.
# If you choose to use one, replace the option 'nocatalog' from the rman command line below
# with the 'rcvcat /@' statement.
# Backs up the whole database. This backup is part of the incremental strategy
# (this means it can have incremental backups of levels > 0 applied to it).
CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append <<>> $RMAN_LOG_FILE
RSTAT=$?
else
/usr/bin/sh -c "$CMD_STR" >> $RMAN_LOG_FILE
RSTAT=$?
fi
# Log the completion of this script.
if [ "$RSTAT" = "0" ]
then
LOGMSG="ended successfully"
else
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
exit $RSTAT
Categories: ,

0 comments: