>>Script Language and Platform: Oracle
This shell script is useful to startup a database when it must be running.
It checks the database status based on value of status (Y|N) in the
/etc/oratab file and send an e-mail to DBA when database has been restarted.
It works fine in Red Hat Linux boxes.
Author: Lums Claudio Rodrigues da Silveira
#!/bin/sh
#
# Verifies status of the database and send a message to DBA
# in the case of database is running out.
# It works fine in Red Hat Linux boxes
# Date : 10/17/2003
# Author : Luis Claudio Rodrigues da Silveira# Get oracle account
USER=`whoami`
# Get home to find oracle binaries
ORACLE_HOME=`grep ^$USER: /etc/passwd | cut -d: -f6`
DIRBIN=$ORACLE_HOME/bin
# put your e-mail here
ADDRESS=someone@somewhere.com
MESSAGE=message.logexport USER ORACLE_HOME DIRBIN ADDRESS MESSAGE
touch $MESSAGE
# retrieves the name of all oracle instances
for DB in `cat /etc/oratab | cut -f1 -d:`
do
OPEN=0# verified if database is opened or closed
STATUS=`cat /etc/oratab | grep $DB | cut -f3 -d:`
for ACTIVE in `ps -ef | grep ora_pmon | grep -v grep | cut -f3 -d”_”`
do
if [ “$DB” = “$ACTIVE” ]
then
OPEN=1
fi
doneif [ $OPEN -eq 0 -a “$STATUS” = “Y” ]
then
echo “Instance $DB must be running : it has been restarted on
`hostname`” >> $MESSAGE
export ORACLE_SID=$DB
$ORACLE_HOME/bin/sqlplus /nolog << ! connect / as sysdba startup exit ! fi done # do not send a empty message.. LINES=`cat $MESSAGE | wc -l` if [ $LINES -gt 0 ] then mailx -s "Script checkdb.sh" $ADDRESS << ! Data : `date` `echo` `cat $MESSAGE` ! fi touch $MESSAGE
Disclaimer: We hope that the information on these script pages is
valuable to you. Your use of the information contained in these pages,
however, is at your sole risk. All information on these pages is provided
“as -is”, without any warranty, whether express or implied, of its accuracy,
completeness, or fitness for a particular purpose…
Disclaimer Continued
Back to Database Journal Home