:Y
orcl1:/apps/oracle/product/:N
To
start and stop the database when the machine comes up and goes down by modifying
the startup routines for the Linux machine. This is quite easy, although I
should point out here that this may change depending on which flavour of Linux
(Slackware, Debian, RedHat, etc).
I will show examples which work for
Redhat Linux. To modify these for your own flavour of Linux, please see your
Linux documentation sets. (Although it should hold true for any Sys V type
UNIX).
Firstly, we need to create the script. which will run dbshut
and dbstart in the /etc/rc.d/init.d directory. Create the following file as
/etc/rc.d/init.d/oracle:
#!/bin/sh
#
#
/etc/rc.d/init.d/oracle
# Description: Starts and stops the Oracle database
and listeners
# See how we were called.
case "$1"
in
start)
echo -n "Starting Oracle Databases: "
echo
"----------------------------------------------------" >>
/var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of
system up." >> /var/log/oracle
echo
"----------------------------------------------------" >>
/var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo
"Done."
echo -n "Starting Oracle Listeners: "
su - oracle -c "lsnrctl
start" >> /var/log/oracle
echo "Done."
echo ""
echo
"----------------------------------------------------" >>
/var/log/oracle
date +"! %T %a %D : Finished." >>
/var/log/oracle
echo "----------------------------------------------------"
>> /var/log/oracle
touch
/var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle
Listeners: "
echo "----------------------------------------------------"
>> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases
as part of system down." >> /var/log/oracle
echo
"----------------------------------------------------" >>
/var/log/oracle
su - oracle -c "lsnrctl stop" >>
/var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo
-n "Shutting Down Oracle Databases: "
su - oracle -c dbshut >>
/var/log/oracle
echo "Done."
echo ""
echo
"----------------------------------------------------" >>
/var/log/oracle
date +"! %T %a %D : Finished." >>
/var/log/oracle
echo "----------------------------------------------------"
>> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle
Databases: "
echo "----------------------------------------------------"
>> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as
part of system up." >> /var/log/oracle
echo
"----------------------------------------------------" >>
/var/log/oracle
su - oracle -c dbstop >> /var/log/oracle
su -
oracle -c dbstart >> /var/log/oracle
echo "Done."
echo -n
"Restarting Oracle Listeners: "
su - oracle -c "lsnrctl stop" >>
/var/log/oracle
su - oracle -c "lsnrctl start" >>
/var/log/oracle
echo "Done."
echo ""
echo
"----------------------------------------------------" >>
/var/log/oracle
date +"! %T %a %D : Finished." >>
/var/log/oracle
echo "----------------------------------------------------"
>> /var/log/oracle
touch
/var/lock/subsys/oracle
;;
*)
echo "Usage: oracle
{start|stop|restart}"
exit 1
esac
It is worth checking that
this file actually correctly stops and starts the databases for your system.
Check the log file, /var/log/oracle for error messages.
Once this
script. is working we need to create start and kill symbolic links in the
appropriate runlevel directories /etc/rc.d/rcX.d.
The following
commands will ensure that the databases will come up in runlevels 2,3 and
4:
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
$ ln -s
../init.d/oracle /etc/rc.d/rc3.d/S99oracle
$ ln -s ../init.d/oracle
/etc/rc.d/rc4.d/S99oracle
To stop the databases on reboot or restart
we need the following links:
$ ln -s ../init.d/oracle
/etc/rc.d/rc0.d/K01oracle # Halting
$ ln -s ../init.d/oracle
/etc/rc.d/rc6.d/K01oracle # Rebooting