You are on page 1of 2

Automatically Start / Stop the Database and Listener

If you want to start the database automatically on boot-time perform the following
steps:
1. Copy standard oracle scripts dbstart and dbshut to $ORACLE_BASE/admin
2. Create start/stop script in /etc/init.d
3. Activate this start/stop script with chkconfig
4. Edit /etc/oratab to start/stop the desired Databases
Copy standard oracle scripts dbstart and dbshut to $ORACLE_BASE/admin
cd $ORACLE_HOME/bin
cp dbstart dbshut $ORACLE_BASE/admin
Create start/stop script in /etc/init.d as user root.
#!/bin/bash
#
# chkconfig: 12345 99 10
# description: Oracle auto start-stop script
# --------------------------------------------------------------------------
# File: oracle
#
# Purpose: Oracle auto start-stop script
#
# Location: /etc/init.d
#
# Certified: Oracle 10.2.0.3 on Enterprise Linux 5
# --------------------------------------------------------------------------
# Variables
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_BASE=/export/home/oracle; export ORACLE_BASE
ORACLE_SCRIPTS_DIR=$ORACLE_BASE/admin; export ORACLE_SCRIPTS_DIR
ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
RETVAL=0
prog="oracle"
start() {
echo -n $"Starting $prog: "
if [ ! -f $ORACLE_SCRIPTS_DIR/dbstart ]
then
echo "Oracle not started (no dbstart script)"
else
# Start RDBMS
su - $ORACLE_OWNER -c $ORACLE_SCRIPTS_DIR/dbstart
# Start Enterprise Manager Console
# su - $ORACLE_OWNER $ORACLE_HOME/bin/emctl start dbconsole
# Start iSQL*Plus
# su - $ORACLE_OWNER $ORACLE_HOME/bin/isqlplusctl start
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/oracle
return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: "
if [ ! -f $ORACLE_SCRIPTS_DIR/dbshut ]
then
echo "Oracle not stopped (no dbshut script)"
else
# Stop iSQL*Plus
# su - $ORACLE_OWNER $ORACLE_HOME/bin/isqlplusctl stop
# Stop Enterprise Manager Console
# su - $ORACLE_OWNER $ORACLE_HOME/bin/emctl stop dbconsole
# Stop RDBMS
su - $ORACLE_OWNER -c $ORACLE_SCRIPTS_DIR/dbshut
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/oracle
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
esac
exit $RETVAL
Activate this start/stop script with chkconfig as root as follows
su - root
chkconfig --add oracle
chkconfig --list oracle
Edit /etc/oratab to start/stop the desired databases
su - root
cat /etc/oratab
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:

GENTIC:/export/home/oracle/product/10.2.0:Y
Activate Enterprise Manager Console
Create the repository for the enterprise manager console as follows:
emca -repos create
emca -config dbcontrol db
Try to connect to the database control as follows:
http://<db-host>:1158/em
Automatically start and stop the DB-console
emctl start dbconsole
emctl stop dbconsole
emctl status dbconsole