backup script cdb pdb - liamlamth/blog GitHub Wiki

#!/bin/ksh
set -x

SID=$1
LOG=/operation/log/dbbackupFULL_$1_`date '+%Y%m%d'`.log

(
if [ "$1" = "" ]; then
  echo "Usage: dbbackup.sh [ORACLE_SID]"
  echo "e.g.: dbbackup.sh DB_NAME"
  echo " Error" | /usr/bin/mutt -s "Error running `basename $0`" -- db_adm
  exit 1
fi

ORA_USER=`ps -ef | grep $SID | grep pmon | grep -v grep | awk '{print $1}' | tail -1`

if [ `whoami` != $ORA_USER ]; then
  echo "Please use Oracle user to execute this script"
  echo " Error" | /usr/bin/mutt -s "Error running `basename $0`" -- db_adm
  exit 1
fi

INS_CHK=`ps -ef | grep pmon | grep $SID | wc -l`

if [ $INS_CHK -eq 0 ]; then
        echo "[ $(date "+%F %H:%M:%S") ] Database is not running"
        echo " Error" | /usr/bin/mutt -s "Error running `basename $0`" -- db_adm
        exit 1
fi

if [ $INS_CHK -eq 1 ]; then
        ORACLE_SID=`ps -ef | grep pmon | grep -v grep | grep $SID | awk '{print $NF}' | sed -e 's/ora_pmon_//g'`
        if [ -z "$ORACLE_SID" ]; then
                echo "[ $(date "+%F %H:%M:%S") ] INVALID ORACLE_SID"
                echo " Error" | /usr/bin/mutt -s "Error running `basename $0`" -- db_adm
                exit 1
        fi
        export ORACLE_SID

        PMON_PID=`pgrep -lf _pmon_"$ORACLE_SID" | awk '{print $1}'`
        ORACLE_HOME=`sudo pwdx $PMON_PID | awk '{print $NF}' | sed 's/\/dbs//g'`
        if [ -z "$ORACLE_HOME" ]; then
                echo "[ $(date "+%F %H:%M:%S") ] INVALID ORACLE_HOME"
                echo " Error" | /usr/bin/mutt -s "Error running `basename $0`" -- db_adm
                exit 1
        fi
        export ORACLE_HOME
fi

⚠️ **GitHub.com Fallback** ⚠️