oracle自动启动与停止

简介: 最近做开发时,发觉每次重新启动服务器时oracle数据库若没有关闭,则必须先关闭后在重新启动redhat advance server,oracle才能够正常运行。感觉这样麻烦,想到能否使数据库与web服务器与操作系统一同关闭与启动。
最近做开发时,发觉每次重新启动服务器时oracle数据库若没有关闭,则必须先关闭后在重新启动redhat advance server,oracle才能够正常运行。感觉这样麻烦,想到能否使数据库与web服务器与操作系统一同关闭与启动。在网上查找了一下相关资料,只找到一篇“Oracle Database HOWTO 自动启动及停止.htm”但是没有找到有关weblogic自动启动与停止的文章。经过摸索,我最初的想法实现了,因此想把它写出来,与大家交流。
服务器环境:
RedHat Advance Server2.1
Oracle 9.2.2 for Linux
Weblogic7.0 for Linux
一、 oracle自动启动与停止
1、 修改Oracle系统配置文件/etc/oratab
/etc/oratab 格式为: SID:$ORACLE_HOME:AUTO
把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。我的为:
ora9i:/home/oracle/ora/products/9.2.0:Y
2、 编写服务脚本:如下
#!/bin/bash

case "$1" in
start)
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databasee as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "dbstart" >> /var/log/oracle
echo "Done."
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /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

;;
stop)
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener 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 "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
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)
$0 stop
$0 start

;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac

将脚本命名为oracle,保存在/etc/rc.d/init.d下
改变文件属性:chmod 755 oracle

注意:在windows下编辑此文件时有DOS格式字符导致在linux下不能够正常运行,建议用gedit 或用 vi编辑

3、建立服务连接:
系统启动时启动数据库,我们需要以下连结∶
--------------------------------------------------------------------------------
$ 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/rc5.d/S99oracle #rc4.d unused


--------------------------------------------------------------------------------

要在重新启动时停止数据库,我们需要以下连结∶


--------------------------------------------------------------------------------

$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动
目录
相关文章
|
Oracle 关系型数据库 Linux
|
Oracle 关系型数据库 数据库
oracle数据库自动启动关闭
在OS启动时,可以设置oracle和os一起启动或关闭。oracle自带dbstart和dbshut命令。它们会读取oratab文件 [oracle@prod1 bin]$ cd $ORACLE_HOME/bin #查看启动和关闭脚本是否存在 [oracl...
1136 0
|
Oracle 关系型数据库 Linux
Oracle 最简单的随系统自动启动
Oracle 最简单的随系统自动启动        俗话说用户是上帝,他们有时候提出一个问题非常的简单,就只需要一句话,一分钟就完事了,但是拿到我们DBA来说,可能至少得半个小时甚至半个月才能满足他的一句话,有没有更好更快的办法呢,我告诉大家这是有的;        我就拿一个例子来说,用户通常都会为了维护简单,需要数据库自动随系统启动,一句非常简单的话,但是拿给DBA来说至少得多花半个小时的时间来配置实现这个功能。
858 0
|
Oracle 关系型数据库
解决Oracle RAC不能自动启动的问题
在安装Oracle RAC 11G时,在grid用户下两个节点的环境变量ORACLE_SID都设成+ASM1了,等grid infrastructure安装完发现第二个节点的ORACLE_SID没有改成+ASM2,手动改成+ASM2后就不能自动启动了,只能自动启动到ASM.
859 0