全部博文(282)
分类: Oracle
2006-06-16 12:43:34
自动启动Oracle数据库并在系统关闭时自动关闭Oracle数据库。自动化数据库启动是可选的,但是自动化关闭是推荐的,因为它保护数据库不适当的关闭。
dbshut和dbstart脚本位于$ORACLE_HOME/bin目录并且可以用于自动化数据库启动和关闭。
dbstart和dbshut脚本引用在oratab文件中同样的条目,因此脚本必须适用于同一个数据库集合。例如,你不能让dbstart已自动启动数据库sid1、sid2和sid3,而让dbshut仅关闭数据库sid1和sid2。然而,你可以指定dbshut关闭当前dbstart根本没使用的数据库。要做到这样,在关闭文件中包括dbshut但是在系统启动文件中省略dbstart。
也可见: 对于系统启动和关闭过程的描述,检查你的操作系统关于init命令的文档。
自动化数据库启动和关闭
本过程必须对你想要配置成自动化启动和关闭的每个新数据库完成。执行下列任务建立dbstart和dbshut脚本以便他们在系统启动被调用:
1. 编辑/etc/oratab文件。
在oratab文件中的数据库入口以下列格式出现:
ORACLE_SID:ORACLE_HOME:{Y|N}
这里Y或N指定你是否想要dbstart和dbshut脚本启动并关闭数据库。找出你想要启动的所有数据库入口。他们有第一列的sid指出。改变最后一个列为Y。
#!/bin/bash
#
# oracle This shell script takes care of starting and stopping
# oracle server.
#
# chkconfig: 35 89 10
# description: Oracle is a Database Server
# processname: oracle
# Source function library.
#/etc/init.d/oracle
. /etc/rc.d/init.d/functions
prog="oracle"
start()
{
#Input the Oracle Service log into Oracle.log
echo "Oracle Service Starting........" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
date "+%Y-%m-%d %A %T :Oracle Service start" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
su - oracle -c dbstart >> /var/log/oracle.log
#Input the Listener Service log into Oracle.log
echo
echo
echo "Listener Service Starting......" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
date "+%Y-%m-%d %A %T :Listener Service Start" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
su - oracle -c lsnrstart >> /var/log/oracle.log
touch /var/log/oracle.log
}
#Function stop,Stop the Oracle and Listener Service auto
#when the Linux Halt
stop()
{
#Input the Listener Service log into Oracle.log
echo "Listener Service Stopping........" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
date "+%Y-%m-%d %A %T :Listener Service Stop">>/var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle
su - oracle -c lsnsrtop>>/var/log/oracle.log
#Input the Oracle Service log into Oracle.log
echo
echo
echo "Oracle Service Stopping........." >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
date "+%Y-%m-%d %A %T :Oracle Service stop" >> /var/log/oracle.log
echo "-----------------------------------------------" >> /var/log/oracle.log
su - oracle -c dbshut >> /var/log/oracle.log
}
case $1 in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status $prog
;;
*)
echo "Please Input start|stop|restart|reload|status"
return 1
esac
case $1 in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
status)
status $prog
;;
*)
echo "Please Input start|stop|restart|reload|status"
return 1
esac
4. 链接dbora,输入:
5. # ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc0.d/K10dbora
6. # ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc2.d/S99dbora
或chkconfig --add dbora
作为Oracle用户执行的配置任务
作为oracle用户执行下列任务。