使用脚本自启动oracle

http://www.cnblogs.com/dba001/archive/2011/05/27/2060276.html

本篇文章介绍如何在linux下将oracle配置为随系统一起启动,并在配置过程中讲解相关知识。

Linux启动时,会运行一个init程序,然后由init来启动后面的任务,包括多用户环境(inittab中设定)和网络等。运行级就是当前程序运行的功能级别,这个级别从1到6,具有不同的功能。这些级别在/etc/inittab中指定,该文件就是init程序寻找的主要文件。最先运行的服务放在/etc/rc.d目录下。

文件以S开头,代表start(启动),后面的数字是启动顺序;文件以K开头,代表kill(结束),同样,后面的数字代表结束顺序。

例如/etc/rc2.d/S10network代表它与运行级别2有关,10就是他的启动顺序。

目录介绍:

init.d

    这个目录中存放了一些服务启动脚本,系统安装时的多个rpm包,这些脚本在执行时可以用来启动,停止和重启这些服务。

rcx.d(x为0~6)

    这个目录是启动级别的执行程序链接目录,里面的文件都是指向init.d目录中文件的一些软连接。

配置步骤:

1、修改dbstart和dbshut脚本:dbstart和dbshut两个shell脚本,在oracle11g下,我们需要手动修改一下这两个个脚本,将ORACLE_HOME_LISTNER=$1这行修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME,保存退出

2、修改/etc/oratab:

orcl:$ORACLE_HOME:N修改为orcl:$ORACLE_HOME:Y

将N修改为Y,表示可以在操作系统启动阶段运行oracle数据库

3、vi /etc/rc.d/init.d/oracle,编辑如下信息:

#! /bin/bash
# chkconfig: 234 61 61
# description: Oracle 11g AutoRun Service
# /etc/rc.d/init.d/oracle


case "$1" in
start)
# starts oracle listener and instance
echo "Starting Oracle Database:"
su oracle -lc "lsnrctl start"
su oracle -lc dbstart
;;
stop)
# shutdown oracle listner and instance
echo "Shuting down Oracle Database:"
su oracle -lc "lsnrctl stop"
su oracle -lc dbshut
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: {start|stop|reload|restart}"
exit 1
esac
exit 0

编辑完成后,保存退出

4、检查一下脚本能否正确执行:

cd /etc/rc.d/init.d

./oracle start

./oracle stop

5、执行如下命令:

chmod 750 /etc/rc.d/init.d/oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle

ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

chkconfig –-level 234 oracle on

chkconfig –-add oracle

关于chkconfig,执行chkconfig时,需要在脚本中添加至少两行注释行,第一行告诉chkconfig该服务的运行级别;第二行添加关于服务的一些说明

5、最后重启动一下linux操作系统,检查oracle是否自动启动成功

重新启动后,oracle启动成功,可以在系统启动界面看到相关信息。

posted @ 2011-11-09 17:40  王帅901  阅读(440)  评论(0编辑  收藏  举报