Thursday, March 6, 2008

Oracle Startup Script

$ su - oracle
$ lsnrctl start
$ dbstart



Copy script to /etc/init.d directory:

# cp /tmp/oracle /etc/init.d/oracle

Create a soft link (Run level 3):

# cd /etc/rc3.d/
# ln -s ../init.d/oracle S100oracle
# ln -s ../init.d/oracle K100oracle

Alternatively use chkconfig command to add script:

# chkconfig –add oracle
# chkconfig –list oracle

Please note that you can just use script directly, to start Oracle type command:

# /etc/init.d/oracle start

To stop Oracle type command:

# /etc/init.d/oracle stop



--------------------------------- Script Follows ---------------------------------


#!/bin/bash
#
# Run level script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4)
# Script should work on other UNIX like oses :)
# -------------------------------------------------------------------------
# Copyright (c) 2006 nixCraft project
# This script is licensed under GNU GPL version 2.0 or above
# Comment/suggestion:
# -------------------------------------------------------------------------
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle service

OUSER="oracle"
OPATH="/home/oracle/oracle/product/10.2.0/db_1"

# check Oracle db status
function chkdb_status() {

# set username
SUSER="scott"
# set password
SPASS="123456"

sqlplus -s /nolog > /dev/null 2>&1 <<EOF
whenever sqlerror exit failure
connect $SUSER/$SPASS
exit success
EOF

if [ $? -ne 0 ]; then
echo "Connection failed : DB is down"
exit 1
else
echo "Connection succeeded : DB is up"
fi
}

case "$1" in
start)
echo "*** Starting Oracle *** "
su - $OUSER -c "$OPATH/bin/lsnrctl start"
su - $OUSER -c "$OPATH/bin/dbstart"
;;
stop)
echo "*** Stopping Oracle *** "
su - $OUSER -c "$OPATH/bin/lsnrctl stop"
su - $OUSER -c "$OPATH/bin/dbshut"
;;
restart)
$0 stop
$1 start
;;
isqlstart)
echo "*** Starting Oracle iSQL Plus *** "
su - $OUSER -c "$OPATH/bin/isqlplusctl start"
echo "*** Note: You can access service at url: http://$(hostname):5560/isqlplus"
;;
isqlstop)
echo "*** Stopping Oracle iSQL Plus *** "
su - $OUSER -c "$OPATH/bin/isqlplusctl stop"
;;
emstart)
echo "*** Starting Oracle Enterprise Manager 10g Database Control ***"
su - $OUSER -c "$OPATH/bin/emctl start dbconsole"
echo "*** Note: You can access service at url: http://$(hostname):1158/em"
;;
emstop)
echo "*** Stopping Oracle Enterprise Manager 10g Database Control ***"
su - $OUSER -c "$OPATH/bin/emctl stop dbconsole"
;;
status)
echo "*** Oracle database status ***"
chkdb_status
;;
*)
echo $"Usage: $0 {start|stop|isqlstart|isqlstop|emstart|emstop}"
exit 1
esac
exit 0

No comments: