red hat下Oracle服务自启动的方法

setup 、rc.local 和chkconfig三种方式都可以设置

第一种)
输入#setup指令进入系统服务菜单,选择你想启动的服务比如oralce,然后重起机器或者/etc/rc.d./init.d/oralce start 

第二种)

把启动命令放到/etc/rc.d/rc.local文件里这样就可以每次启动的时候自动启动服务了,例如对于oracle,安装好Oracle后会在安装目录的bin下生成dbstart文件,这是个启动脚本,我们只需要把这个命令加到rc.local里就可以了

如下所示:

su - oracle -c "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"    --以Oracle用户执行命令
su - oracle -c "/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"   ----以Oracle用户执行命令

需要注意的是,这种方法还需要做一步,那就是需要修改/etc/oratab文件,因为dbstart文件受/etc/oratab控制,dbstart文件只能启动/etc/oratab文件中第三列为Y的SID。
用root用户在/etc/oratab文件修改Oracle实例对应的那一行,一般会存在这么一行的,如果没有,就自己新建一行。如下所示 rzrqksjy:/u01/app/oracle/product/11.2.0/dbhome_1:

   ---rzrqksjy为我本地的实例名 
 
第三种)
通过chkconfig指令

使用chkconfig命令来把某项服务加到系统的各项运行级别中,步骤如下,
1 创建启动脚本.
在/etc/rc.d/init.d/目录下创建Oracle脚本,我们需要在脚本的前面加上一下几行,才能支持chkconfig命令

#!/bin/bash
# chkconfig: 2345 99 10
# description: startup script for oracle database
#/etc/rc.d/init.d/oracle
export ORACLE_BASE=/home/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export ORACLE_SID=rzrqksjy
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
echo "---------------startup oracle----------------" >>/var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"   ---em视情况启动,如果不想启动了,就注释掉
touch /var/lock/subsys/oracle
echo "---------------stratup oracle successful----" >>/var/log/oraclelog
echo "OK"
;;
stop)
echo "---------------stutdown oracle----------------" >>/var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"   ---em没有自启动,这一步不需要写
rm -f  /var/lock/subsys/oracle
echo "---------------shutdown oracle successful----" >>/var/log/oraclelog
echo "OK"
;;
*)
echo ‘‘usage: ‘basename $0‘ start|stop"
exit 1
esac
exit 0

chkconfig:后面定义的是启动服务的运行级别(例子中是2345启动改服务),以及关闭和启动服务的顺序。
descriptions:对服务的描述,你可以换成自己想要的。
2 增加启动项到chkconfig列表中

chmod 700 /etc/rc.d/init.d/oracle   --赋权
chkconfig --level 2345 oracle on  ---其实等同于chkconfig oracle on,因为默认就是2345级别

之后就可以了,以后每次重新启动服务器都会自动启动和关闭我们的服务了    
上述方法中,一般后两种用的较多,如果你使用chkconfig --list|grep oracle 发现没有返回结果,但Oracle又是正常启动的,那么可能就是方法2的自启动方法。  
--祝大家好运,祝工作愉快!

相关文章