>>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.
#!/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 ADDRESSfirstname.lastname@example.org MESSAGE=message.log export 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 done if [ $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...
Back to Database Journal Home