您的位置:首页 > 数据库 > Oracle

centos 设置oracle 开机自启动

2016-06-30 10:45 627 查看
     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

测试操作系统重启,数据库一起重启
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: