centos 设置oracle 开机自启动

linux下设置oracle随操作系统启动而启动,停止而停止

1.oracle提供了两个脚本dbstart(启动)和dbshut(停止)启动和停止数据库和监听程序

The DB server software provides the two scripts to configure automatic DB startup/shutdown with the server machine. They are
$ORACLE_HOME/bin/dbstart
$ORACLE_HOME/bin/dbshut

首先需要调试这个两个脚本,单独调用这两个脚本启动和停止数据库

单独执行时会报如下错误:

ORACLE_HOME_LISTNER is not SET,unable to auto-start Oracle Net Listener

原因是脚本中ORACLE_HOME_LISTNER=$1需要传入参数,所以需要修改脚本中ORACLE_HOME_LISTNER=$ORACLE_HOME

dbshut脚本同样需要修改

2.需要修改/etc/oratab中$ORACLE_SID:$ORACLE_HOME:N中的N改为Y如下

orcl:/u01/app/oracle/oracle/product/11.2.0.4/dbhome_1:Y

原因是dbstart和dbshut脚本里会判断这个文件中实例行是否Y,如果为N不进行启动和停止

第一种:

这是可以把dbstart脚本加入/etc/rc.local中

su - oracle -c /u01/app/oracle/oracle/product/11.2.0.4/dbhome_1/bin/dbstart

重启操作系统,发现oracle可以随操作系统启动而启动

这种方法有个问题再操作系统停止时,oracle数据库不会先操作系统停止前正常停止,而是强制停止


第二种:

把oracle做为操作系统服务随操作系统启动

编写一个启动和停止脚步 dbora 如下:

#!/bin/bash
#
# description: Oracle auto start-stop script.
#
# chkconfig: 2345 99 10
#
# processname: oracle
# config: /etc/oratab
# pidfile: /var/run/oracle.pid

# Source function library.
. /etc/init.d/functions
RETVAL=0
ORA_OWNER="oracle"
ORA_HOME="/u01/app/oracle/oracle/product/11.2.0.4/dbhome_1"

# See how we were called.
prog="oracle"
start() {
echo -n $"Starting $prog: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbora
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut"
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -r /var/lock/subsys/dbora
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?

把脚本放到oracle home/bin目录下并赋予执行权限

单独调式脚本 ./dbora start ./dbora stop 执行没有问题,把dbora添加为服务

拷贝dbora 到/etc/init.d目录下

[root@mydb3 init.d]# cp /u01/app/oracle/oracle/product/11.2.0.4/dbhome_1/bin/dbora /etc/init.d/dbora

赋予权限
[root@mydb3 init.d]# chmod 755 /etc/rc.d/init.d/dbora

添加为操作系统服务
[root@mydb3 init.d]# chkconfig --add dbora
[root@mydb3 init.d]# chkconfig --list dbora
dbora 0:off 1:off 2:on 3:on 4:on 5:on 6:off

测试操作系统重启,数据库一起重启

相关文章

文章浏览阅读903次。4.清除缓存目录(/var/cache/yum)下的软件...
文章浏览阅读1.5k次。Python 是一种高级解释性编程语言,已被...
文章浏览阅读2.6k次。打开终端或控制台,以root或具有sudo权...
文章浏览阅读744次,点赞24次,收藏26次。目标:通过AppSrv为...
文章浏览阅读1.1w次,点赞8次,收藏26次。chmod命令来自于英...
文章浏览阅读1.2k次。yum源的URL地址,本例中是文件系统的路...