您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页Oracle设置(1)设置Oracle数据库为Linux系统服务

Oracle设置(1)设置Oracle数据库为Linux系统服务

来源:榕意旅游网

将Oracle数据库设为Linux系统服务,并使其能随系统启动和关闭数据库。 1. vi /etc/oratab 将最后一行改为Y. 只有改为Y,Oracle自带的dbstart与dbshut才能起作用。 如: xcldb:/u01/app/oracle/product/11.2.0/db_1:Y 2. 启动脚本文件 vi /etc/rc.d/init.d/orac

将Oracle数据库设为Linux系统服务,并使其能随系统启动和关闭数据库。

1. vi /etc/oratab

将最后一行改为Y. 只有改为Y,Oracle自带的dbstart与dbshut才能起作用。

如:

xcldb:/u01/app/oracle/product/11.2.0/db_1:Y


2. 启动脚本文件

vi /etc/rc.d/init.d/oracle

#!/bin/bash
 #chkconfig: 2345 20 80
 #description: Oracle dbstart/dbshut
 #/etc/rc.d/init.d/oracle
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
 ORACLE_OWNER=oracle
 LOGFILE=/var/log/oracle.log
 DATE=`date +%Y-%m-%d`
 echo "################################">>${LOGFILE}
 echo "## Run Oracle "${DATE} >> ${LOGFILE}
 if [! -f ${ORACLE_HOME}"/bin/dbstart" ] || [ ! -f ${ORACLE_HOME}"/bin/dbshut" ]; then
 echo "ERROR: Missing the script file "${ORACLE_HOME}"/bin/dbstart or "${ORACLE_HOME}"/bin/dbshut!">>${LOGFILE}
 echo "################################">>${LOGFILE}
 exit
 fi
 start(){
 touch /var/lock/subsys/oracle
 echo "###Startup oracle....."
 su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/lsnrctl start"
 su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/dbstart "${ORACLE_HOME}
 echo "###Done"
 #echo "###Run database control......"
 #su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/emctl start dbconsole"
 echo "###Done"
 echo "###startup oracle successful....."
 }
 stop(){
 #echo "###Stop database control......"
 #su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/emctl stop dbconsole"
 echo "###Done"
 echo "###Shutdown oracle------"
 su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/lsnrctl stop"
 su - ${ORACLE_OWNER} -c ${ORACLE_HOME}"/bin/dbshut "${ORACLE_HOME}
 echo "###Done"
 rm -f /var/lock/subsys/oracle
 echo "###Shutdown oracle successful-------"
 }
 
 case "$1" in
 'start')
 start >> ${LOGFILE}
 ;;
 'stop')
 stop >> ${LOGFILE}
 ;;
 'restart')
 stop >> ${LOGFILE}
 start >> ${LOGFILE}
 ;;
 *)
 echo "Usage:`basename $0` start|stop|restart"
 exit 1
 esac
 echo "###Finished.">>${LOGFILE}
 echo "################################">>${LOGFILE}
 exit 0

3. 将脚本设置为可执行

chmod a+x /etc/rc.d/init.d/oracle

授权后,可手工用下面命令测试前面脚本的正确性:

a. 启动

/etc/rc.d/init.d/oracle start

b. 停止

/etc/rc.d/init.d/oracle stop

c. 重启

/etc/rc.d/init.d/oracle restart

4. 手工添加服务

a.手工添加到chkconfig

chkconfig --add /etc/rc.d/init.d/oracle

b.查看oracle服务的开机启动级别

chkconfig --list oracle 或

chkconfig | grep oracle

#c.修改oracle服务的开机启动级别

#chkconfig --level 24 oracle off

#chkconfig --level 35 oracle on

注意:

如果在启动脚本前不加下面两行,会出现"服务不支持 chkconfig"

#chkconfig: 2345 20 80

#description: Oracle dbstart/dbshut

5. 手工测试服务

service oracle start

service oracle stop

service oracle restart

6.建立连接

a.关机执行

ln -s /etc/init.d/oracle /etc/rc.d/rc0.d/K01oracle

b.重启执行

ln -s /etc/init.d/oracle /etc/rc.d/rc6.d/K01oracle

c.开机执行(Oracle10g以后能自启动了,可以省掉这步)

ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle

ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle

7.重启测试下

reboot

cat /var/log/oracle.log

备注:

脚本中可以看到,start与stop时,弄了个/var/lock/subsys/oracle。

如果不增加这个文件的处理,在系统关闭时,你会发现stop并没有执行。

原因可以看看<<简单的Linux开机服务知识>>


MAIL: xcl_168@aliyun.com

BLOG: http://blog.csdn.net/xcl168

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务