#! /bin/sh # DBA_USER=oracle DEFAULT_ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 TARGET_CONNECT_STR=/ LOGFILE=${0}.`date +%Y%m%d`.out # SYSNAME=`uname -s` if [ "${SYSNAME}" = "HP-UX" ];then UNIX_STD=2003; export UNIX_STD; fi if [ "${SYSNAME}" = "SunOS" ];then ORATAB=/var/opt/oracle/oratab else ORATAB=/etc/oratab fi if [ "${NB_ORA_POLICY}" = "" ];then echo "This script must be kicked by NetBackup Oracle Agent. Do not run manually." exit 1 fi if [ "${NB_ORA_FULL}" = "1" ];then BACKUP_TYPE="INCREMENTAL LEVEL=0" elif [ "${NB_ORA_CINC}" = "1" ];then BACKUP_TYPE="INCREMENTAL LEVEL=1 CUMULATIVE" elif [ "${NB_ORA_INCR}" = "1" ];then BACKUP_TYPE="INCREMENTAL LEVEL=1" else BACKUP_TYPE="INCREMENTAL LEVEL=0" fi SIDS_SUCCEED= SIDS_FAIL= SIDS=`ps -eo args | grep "^ora_dbw0_" | cut -c 10- | grep -v "^+"` if [ -z "${SIDS}" ];then echo "No instance running on this host." exit 0 fi echo "### `date` Backup session started" >> ${LOGFILE} for sid in ${SIDS}; do ORACLE_SID=${sid} # deterimine ORACLE_HOME from oratab ORACLE_HOME=`grep "^${sid}:" ${ORATAB} | head -n 1 | tr : " " 2>/dev/null` set -- ${ORACLE_HOME} ORACLE_HOME=$2 if [ "${ORACLE_HOME}" = "" ];then ORACLE_HOME=${DEFAULT_ORACLE_HOME}; fi RMAN=${ORACLE_HOME}/bin/rman CMD_STR=" env ORACLE_SID=${ORACLE_SID} ORACLE_HOME=${ORACLE_HOME} ${RMAN} target ${TARGET_CONNECT_STR} nocatalog <> ${LOGFILE} su - ${DBA_USER} -c "${CMD_STR}" >> ${LOGFILE} 2>&1 RC=$? echo "==== ${ORACLE_SID} backup ended on `date` : rc=${RC} ====" >> ${LOGFILE} if [ ${RC} -ne 0 ];then SIDS_FAIL="${SIDS_FAIL} ${ORACLE_SID}" else SIDS_SUCCEED="${SIDS_SUCCEED} ${ORACLE_SID}" fi done RC=`echo "${SIDS_FAIL}" | wc -w` echo "SIDs SUCCEEDED: ${SIDS_SUCCEED}" >>${LOGFILE} echo "SIDs FAILED: ${SIDS_FAIL}" >>${LOGFILE} echo "### `date` Backup session ended rc=${RC}" >>${LOGFILE} exit ${RC}