Overview

The script is relatively simple consisting of:

Script

#!/bin/bash
EMAIL_LIST="email1,email2,email3"


OIFS=$IFS
IFS="
"
NIFS=$IFS

function status {
OUTPUT=`$GG_HOME/ggsci << EOF
info all
exit
EOF`
}

function alert {
for line in $OUTPUT
do
GNAME=$(echo "${line}" | awk -F" " '{print $3}')
GSTAT=$(echo "${line}" | awk -F" " '{print $2}')
GTYPE=$(echo "${line}" | awk -F" " '{print $1}')
if [[ $(echo "${line}"|egrep 'STOP|ABEND' >/dev/null;echo $?) = 0 ]]
then
case $GTYPE in
"MANAGER")
echo "" | mailx -s "${HOSTNAME} - GoldenGate ${GTYPE} ${GSTAT}" $NOTIFY $EMAIL_LIST -- smtp="private_smprt_server_if_such_exists" -f "[email protected]" 
 ;;
"EXTRACT"|"REPLICAT")
echo "" | mailx -s "${HOSTNAME} - GoldenGate ${GTYPE} ${GNAME} ${GSTAT}" $EMAIL_LIST -- smtp="private_smprt_server_if_such_exists" -f "[email protected]" 
 ;;
esac
fi
done
}

export GG_HOME=GG_HOME_PATH;
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_SID=SID_NAME
status
alert

Crontab

We can schedule this script to run every 1 hour to see how it goes :)

0 * * * * /bin/sh /home/oracle/run_goldenGate_check.sh > /dev/null

P.S. This script will produce a message ONLY when something is STOPPED or AB