zoukankan      html  css  js  c++  java
  • 配置Oracle数据库和监听随Linux系统自启动【转】

       在某些情况下需要在Linux操作系统上提供一种无人值守的随机启动Oracle的功能,目的也许仅仅是为了帮助那些对Oracle细节非常不关心的朋友。
    当然,如果有可能,一定不要使用这种自动化的方法,因为有太多不确定的因素存在。正途还是一边手工启动数据库,一边监控alert日志,以便第一时间发现问题解决问题。

    Anyway,随Linux系统启动数据库还是有其存在价值的,下面通过这个小文儿给大家展示一下这个自动化过程。

    1.确保“/etc/oratab”文件内容的正确性
    有则修改,无则创建“/etc/oratab”文件。该文件的功能是控制Oracle的启动(dbstart)和关闭脚本(dbshut)是否可用。
    # vi /etc/oratab
    ecis:/oracle/app/oracle/product/10.2.0/db_1:Y

    只有当尾部标识是“Y”时,dbstart和dbshut脚本才可以使用。
    dbstart和dbshut脚本存放位置是在ORACLE_HOME的bin目录下,可以使用下面的命令查看脚本的内容。
    $ cat $ORACLE_HOME/bin/dbstart
    $ cat $ORACLE_HOME/bin/dbshut

    2.修改oratab的访问权限
    # chmod 755 /etc/oratab
    # chown oracle:root /etc/oratab

    3.编写自动启停脚本,脚本名叫“oracle”,该文件需要保存在/etc/rc.d/init.d目录中。
    vi /etc/rc.d/init.d/oracle
    #!/bin/bash
    ##############################################################
    # Script. Function: Auto start oracle instance and listener. #
    # Script. Name:     oracle                                   #
    # Author:                                                        #
    # Date:            2015-11-13                                #
    ##############################################################
    case "$1" in
    start)
    echo "Starting Oracle Database..."
    su - oracle -c "dbstart"
    echo "Done."
    echo "Starting Oracle Listener..."
    su - oracle -c "lsnrctl start"
    echo "Done."
    touch /var/lock/subsys/oracle
    ;;
    stop)
    echo "Shutting down Oracle Listener..."
    su - oracle -c "lsnrctl stop" >> /var/log/oracle
    echo "Done."
    rm -f /var/lock/subsys/oracle
    echo "Shutting down Oracle Database..."
    su - oracle -c "dbshut"
    echo "Done."
    echo ""
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    *)
    exit 1
    esac

    4.脚本中需要说明的两个细节
    1)/var/lock/subsys/oracle这个文件是用来标识oracle实例已经运行。实现类似简单的锁定功能;
    2)为实现在root用户里向oracle用户发送启动和关闭数据库命令,需要使用“su”命令的“-c”选项,更多细节请使用man命令进行查询。

    5.修改oracle脚本的权限
    # chmod 755 oracle

    6.为保证该脚本可以在Linux系统启动过程中自动调用,因此需要建立如下连接文件。
    特别需要注意的一个细节:确定该脚本在网卡启动之后再执行,否则监听可能无法正常启动(假如Listener配置文件中使用的是IP地址)。
    # ln -s ../init.d/oracle /etc/rc.d/rc2.d/S87oracle
    # ln -s ../init.d/oracle /etc/rc.d/rc3.d/S87oracle
    # ln -s ../init.d/oracle /etc/rc.d/rc5.d/S87oracle

    7.到此,重新启动Linux系统后,Oracle的实例和监听就会自动启动。

    8.按照这样配置,您还可以使用如下简易方法停、启及重启数据库
    停止:
    # service oracle stop
    启动:
    # service oracle start
    重启:
    # service oracle restart

    9.小结
    本人推崇自动化,但这里介绍的自动化启动和关闭数据库的方法还请朋友们慎用。
    深入到数据库的启动和关闭的细节才是正道。

    Good luck.

    -- The End --
  • 相关阅读:
    概率的定义
    二项式分布与伯努利分布
    复数的表示方法
    <诗经>的由来
    王国维
    应该记住的历史事件
    switch条件变量的取值类型
    & 和 && 区别和联系,| 和 || 区别和联系
    成功安装 Visio 2016 和 Office 2016 的64位版本~~
    删除MicrosoftOffice2016的扫尾工作
  • 原文地址:https://www.cnblogs.com/chenjunjie/p/4962353.html
Copyright © 2011-2022 走看看