zoukankan      html  css  js  c++  java
  • linux系统oracle服务自启动

    折腾了我好几个时辰了,终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸。具体步骤说明如下:

    1.修改dbstart和dbshut脚本

    dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本

    将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1)
     
    dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME

    2.创建oracle自启动脚本

    由于修改了dbstart和dbshut脚本,直接用这个脚本就可以实现oracle服务和监听的同时启动或关闭,因此该脚本启动或关闭数据库只要调用dbstart或dbshut脚本就可以了。如果采用默认不做修改,那么必须在该脚本中增加启动监听和关闭监听的语句

    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"

    如果想开机自动启动oem或关闭自动一起关闭oem,则采用如下语句:

    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" 

    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"

     该脚本只是启动oracle监听和oracle服务,且已经做了dbstart脚本的修改,因此具体的脚本如下:

      # !/bin/bash

      # whoami

      # root

      # chkconfig: 2345 99 01

      # /etc/init.d/orcl

      # description: starts the oracle dabase deamons

      #

      ORACLE_HOME=/oradata/oracle/112

      ORACLE_OWNER=oracle

      case "$1" in

      start)

      echo -n "Starting orcl: "

      su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart"

      touch /var/lock/subsys/orcl

      echo

      ;;

    stop)

      echo -n "shutting down orcl: "

      su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut"

      rm -f /var/lock/subsys/orcl

      echo

      ;;

    restart)

      echo -n "restarting orcl: "

      $0 stop

      $0 start

      echo

      ;;

      *)

      echo "Usage: `basename $0` start|stop|restart"

    esac


    注:原先直接从网上拷贝了脚本,

        #!/bin/bash 这句话,前面按理是只有两个空格的,直接将这句话拷贝到linux系统后,只表示两个空格(在linux系统实际上是4个空格了,其实表示了换行加回车),因此拷贝到linux系统后,先将该非正常空格去掉。

    3.赋予自启动脚本执行权限

    chmod 775 /etc/init.d/orcl

    4. 增加配置服务

    [root@localhost ~]# /sbin/chkconfig --add orcl
    orcl 服务不支持 chkconfig

    “服务不支持 chkconfig”:——这个提示是因为oracle自启动脚本前面必须要有以下这两行
    #chkconfig: 2345 00 01
    #description:oracle 11g service

    当然如果不采用这个命令进行配置服务,也可以手动方式创建文件链接来完成,如下所示:

    文件链接
    ln -s /etc/init.d/orcl /etc/rc.d/rc2.d/S99orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc3.d/S99orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc4.d/S99orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc5.d/S99orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc0.d/K01orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc1.d/K01orcl
    ln -s /etc/init.d/orcl /etc/rc.d/rc6.d/K01orcl

    若想删除链接,执行如下:

    rm -rf /etc/rc.d/rc2.d/S99orcl
    rm -rf /etc/rc.d/rc3.d/S99orcl
    rm -rf /etc/rc.d/rc4.d/S99orcl
    rm -rf /etc/rc.d/rc5.d/S99orcl
    rm -rf /etc/rc.d/rc0.d/K0orcl
    rm -rf /etc/rc.d/rc1.d/011orcl
    rm -rf /etc/rc.d/rc6.d/S01orcl

    5.修改 /etc/oratab 文件

    vi /etc/oratab
      ORACLE_SID:ORACLE_HOME:Y   --  是否自启动将原来的N改成Y

    注:没有oratab(这个文件是oracle安装时执行如下脚本后生成的)这个文件,重新执行这两个脚本
    /oradata/oraInventory/orainstRoot.sh
    /oradata/oracle/112/root.sh
    6.测试是否配置成功

     service orcl(oracle自启动脚本名称)--用于检查配置是否成功,如果有错误会有具体的输出,根据输出结果检查修改。

    service orcl start 测试是否可以成功启动oracle

    备注:

    第二步可以替换,如果不创建oracle自启动脚本,可以直接在/etc/rc.d/rc.local文件中增加想启动的服务的语句即可

    su - oracle -c "/oradata/oracle/112/bin/dbstart"
    su - oracle -c "/oradata/oracle/112/bin/emctl start dbconsole"

  • 相关阅读:
    PCA与LDA
    SVM--交叉验证
    git的基本使用
    MySQL的操作
    MySQL安装和远程连接
    javaScript进阶
    javaScript基础入门篇
    javaScript运动
    可变对象和不可变对象
    基本数据类型
  • 原文地址:https://www.cnblogs.com/lanzi/p/2456022.html
Copyright © 2011-2022 走看看