视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle设置(1)设置Oracle数据库为Linux系统服务
2020-11-09 07:30:59 责编:小采
文档


将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

下载本文
显示全文
专题