设置Oracle数据库开机自启动

本文详细介绍了如何修改Oracle环境变量、配置启动脚本、设置自启动、调整服务权限以及确保Oracle监听器和实例在系统重启后自动启动的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原创 Oracle 作者:迷倪小魏 时间:2017-12-07 16:15:35 3485 0

1、修改$ORACLE_HOME/bin/dbstart

 [oracle@seiang11g ~]$ vim $ORACLE_HOME/bin/dbstart
#将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

2、修改$ORACLE_HOME/bin/dbshut

 [oracle@seiang11g ~]$ vim $ORACLE_HOME/bin/dbshut
 #将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

3、修改/etc/oratab文件

[oracle@seiang11g ~]$ vim /etc/oratab
#将seiang11g:/u01/app/oracle/product/11.2.0/dbhome_1:N中最后的N改为Y,成为seiang11g:/u01/app/oracle/product/11.2.0/dbhome_1:Y

4、输入命令dbshut和dbstart测试

[oracle@seiang11g ~]$dbshut
#Oracle监听停止,进程消失。
[oracle@seiang11g ~]$dbstart
#Oracle监听启动,进程启动。

在这里插入图片描述

在这里插入图片描述

5、切换到root账户建立自启动脚本

[root@seiang11g init.d]# vim /etc/rc.d/init.d/oracle
# 添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改):
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;;
'restart')
   $0 stop
   $0 start
   ;;
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else
      echo $0 stopped.
   fi
   ;;
*)
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac
exit 0

6. 修改/etc/init.d/oracle服务文件权限

[root@seiang11g ~]# chmod 755 /etc/init.d/oracle

7. 设置为开机启动

[root@seiang11g ~]# chkconfig oracle on

注意
如果在执行chkconfig oralce on或chkconfig –add oracle时出现如下的提示:
在这里插入图片描述

则在/etc/rc.d/init.d/oracle脚本中一定要加入下面两行内容

# chkconfig: 345 99 10
# description: script for the Oracle Instance, Listener (描述内容可修改)

说明:
# chkconfig: 345 99 10
指出3,4,5级别启动这个服务,99是在相应的/etc/rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别) S99oradbstart,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)K10oradbstart

在这里插入图片描述

8、进行service oracle start/stop/restart测试

在这里插入图片描述

9、Reboot重启服务器查看Oracle监听和实例进程均能自动启动。

作者:SEian.G(苦练七十二变,笑对八十一难)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值