oracle啟動和關閉指令碼for Linux |
In many cases after
installing Oracle DB on Linux servers, there is a need to configure it to start
automatically after OS reboot. The automatic startup and shutdown of
the Oracle database can be achieved with the files dbstart and dbshut both
provided by Oracle. These files rely on the existance of the file /etc/oratab to
work (although by altering the dbshut and dbstart files this can be
moved). The format of the /etc/oratab file is as
follows: SID:ORACLE_HOME:AUTO An
example: orcl:/apps/oracle/product/: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 | |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-748456/,如需轉載,請註明出處,否則將追究法律責任。