Oracle Instance Check Script
Purpose:
This script checks for oracle backgroud process and pages/emails if specified background is not present.
Step (1)
Prerequisite
create database list file ("/u11/misc/ActiveDBs.list") to loop through all the DB instances.
Step (2)
$ cat .cronprofile
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_SID=my_sid
NLS_LANG=AMERICAN_AMERICA.UTF8
PATH=./:${ORACLE_HOME}/bin:/usr/ccs/bin:/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/local/bin:${HOME}:/usr/ucb:/sbin:/usr/lib/vxvm/bin:/usr/lib/fs/vxfs:/opt/VRTSvxfs/sbin:/opt/VRTSvcs/bin:/opt/VRTSvcs/ops/bin:/opt/VRTSob/bin:/opt/VRTS/bin
MANPATH=$MANPATH:./:/usr/opt/SUNWmd/man
SERVER=`uname -n`
LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${ORACLE_HOME}/lib64:${ORACLE_HOME}/lib:${ORACLE_HOME}/jdbc/lib:/usr/openwin/lib:/usr/dt/lib:${ORACLE_HOME}/ctx/lib
#LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${ORACLE_HOME}/lib64:${ORACLE_HOME}/lib:${ORACLE_HOME}/jdbc/lib:/usr/openwin/lib:/usr/dt/lib:${ORACLE_HOME}/ctx/lib:/opt/ORCLcluster/lib
LD_LIBRARY_PATH_64=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH
ORA_OEMAGENT_DIR=/opt/oracle/agent
TCL_LIBRARY=${ORACLE_HOME}/network/agent/tcl
export NLS_LANG ORACLE_BASE ORACLE_HOME PATH MANPATH SERVER LD_LIBRARY_PATH LD_LIBRARY_PATH_64 ORA_OEMAGENT_DIR TCL_LIBRARY
umask 022
# Set up the terminal:
# TERM=vt220; export TERM
TERM=vt100; export TERM
stty erase "^H" kill "^U" intr "^C" eof "^D"
stty hupcl ixon ixoff
tabs
# Set up the shell environment:
set -u
trap "echo 'logout'" 0
# Set up the shell variables:
EDITOR=vi
export EDITOR
stty erase ^?
export SCRIPT_DIR=/opt/oracle/scripts/dba/monitoring
export PAGETO="1234567890@vtext.com"
export MAILTO="first_name.last_name@your_company.com"
export TEMP_DIR=/tmp
export LOG_DIR=/opt/oracle/scripts/dba/monitoring/logs
export LOGTO=${LOG_DIR}/alertlog_check.log
Step (3)
$ cat /opt/oracle/scripts/dba/monitoring/oracheck.sh
#!/bin/ksh
. /opt/oracle/scripts/dba/monitoring/.cronprofile
set -x
TIME=`date +'%a %b %d %Y %R'`
for SID in $(cat /u11/misc/ActiveDBs.list)
do
#MUSTRUN contains the ORACLE background processes
MUSTRUN="ora_smon_${SID} ora_dbw0_${SID} ora_pmon_${SID} ora_lgwr_${SID}"
ps -ef|grep -i $SID |grep -v grep > /tmp/${SID}.ps_out 2>&1
# for i in $MUSTRUN
# do
if ! grep "ora_" /tmp/${SID}.ps_out >/dev/null 2>&1
then
MESG="$TIME: $SID is no longer running on `uname -n` "
#Send a page
#sendpage DBA "$MESG"
#Send an e-mail
echo $MESG | mailx -s "$MESG" $PAGETO
fi
# done
done
0 Comments:
Post a Comment
<< Home