zoukankan      html  css  js  c++  java
  • oracle启动脚本

    环境

    Centos7(64位) oracle11g

    配置/etc/oratab

    orcl:/data01/oracleDB/product/11.2.0/db_1:N
    
    改为
    
    orcl:/data01/oracleDB/product/11.2.0/db_1:Y

    如果没有这个文件find / -name oratab 找到文件路径复制到/etc/下

    对于oratab文件的说明: 
    1.只在Linux环境中存在 
    2.设置格式::: 示例:orcl:/data01/oracleDB/product/11.2.0/db_1:N
    3.可以为不同的数据库设置相应的选项 
    4.如果想用$ORACLE_HOME/bin/dbstart脚本来启动数据库,则需要将/etc/oratab文件中相应的数据库的项置为Y, 
    简单的说即dbstart脚本根据oratab文件中的配置决定启动哪几个数据库。 
    5.如果不使用dbstart脚本启动数据库,而是用自己的脚本来启动,那么根本不用关心oratab文件。

    https://www.linuxidc.com/Linux/2011-04/34155.htm解决执行Oracle控制脚本时遇到的 “cat: /etc/oratab: 没有那个文件或目录”的问题

    在/etc/init.d/下创建Oracle服务启动脚本:

    vi /etc/init.d/oracle

    将以下脚本代码复制到文件里(注意修改oracle路径)

     

    #!/bin/sh
    
    # chkconfig: 345 61 61
    
    # description: Oracle 11g R2 AutoRun Servimces
    
    # /etc/init.d/oracle
    
    #
    
    # Run-level Startup script for the Oracle Instance, Listener, and
    
    # Web Interface
    
    export ORACLE_BASE=/data01/oracleDB/    #根据个人情况修改路径
    
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1/
    
    export ORACLE_SID=orcl         #改成自己的ORACLE_SID:orcl
    
    export PATH=$PATH:$ORACLE_HOME/bin
    
    ORA_OWNR="oracle"
    
    # if the executables do not exist -- display error
    
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    
    then
    
    echo "Oracle startup: cannot start"
    
    exit 1
    
    fi
    
    # depending on parameter -- startup, shutdown, restart
    
    # of the instance and listener or usage display
    
    case "$1" in
    
    start)
    
    # Oracle listener and instance startup
    
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
    
    echo "Oracle Start Succesful!OK."
    
    ;;
    
    stop)
    
    # Oracle listener and instance shutdown
    
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
    
    echo "Oracle Stop Succesful!OK."
    
    ;;
    
    reload|restart)
    
    $0 stop
    
    $0 start
    
    ;;
    
    *)
    
    echo $"Usage: `basename $0` {start|stop|reload|reload}"
    
    exit 1
    
    esac
    
    exit 0

    检查一下脚本能否正确执行

    cd /etc/rc.d/init.d
    
    chmod +x oracle
    
    ll oracle

    执行oracle脚本

    ./oracle start

    这里需要注意了,在启动Oracle服务的时候,提示“ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener”,大体意思是“Oracle监听没有配置,监听没能启动”。

    下面就需要配置一下监听,让启动数据库的时候也把监听一起启动。

     

    配置oracle监听开机自启动服务

    修改dbstart和dbshut启动关闭脚本,使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器): 

    vi /data01/oracleDB/product/11.2.0/db_1/bin/dbstart

    找到下面的代码:

    ORACLE_HOME_LISTNER=$1
    
    将其改为
    
    ORACLE_HOME_LISTNER=/data01/oracleDB/product/11.2.0/db_1/

    vi /data01/oracleDB/product/11.2.0/db_1/bin/dbshut

    找到下面的代码:

    ORACLE_HOME_LISTNER=$1
    
    将其改为
    
    ORACLE_HOME_LISTNER=/data01/oracleDB/product/11.2.0/db_1/

    再次测试oracle服务脚本

    cd /etc/rc.d/init.d

    ./oracle start

    Processing Database instance "testsid": log file /data/oracle/product/11.2.0/db_1/startup.log

    Oracle Start Succesful!OK.

    发现之前关于监听的提示消失了,测试成功。

    chkconfig --add oracle
    
    chkconfig oracle on
    
    chkconfig --list oracle

    [root@centos7 init.d]# chkconfig --list  oracle

    Note: This output shows SysV services only and does not include native
    
          systemd services. SysV configuration data might be overridden by native
    
          systemd configuration.
    
          If you want to list systemd services use 'systemctl list-unit-files'.
    
          To see services enabled on particular target use
    
          'systemctl list-dependencies [target]'.
    
    oracle          0:off   1:off   2:on    3:on    4:on    5:on    6:off

    最后重启机器,确认自启动结果(看情况重启,测试脚本就随便重启)

    [oracle@zm-centos7 ~]$ lsnrctl status   # 查看监听状态
    
     
    
    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 11-OCT-2017 23:05:06
    
     
    
    Copyright (c) 1991, 2009, Oracle.  All rights reserved.
    
     
    
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
    
    STATUS of the LISTENER
    
    ------------------------
    
    Alias                     LISTENER
    
    Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
    
    Start Date                11-OCT-2017 23:02:22
    
    Uptime                    0 days 0 hr. 2 min. 45 sec
    
    Trace Level               off
    
    Security                  ON: Local OS Authentication
    
    SNMP                      OFF
    
    Listener Parameter File   /data01/oracleDB/product/11.2.0/db_1/network/admin/listener.ora
    
    Listener Log File         /data01/oracle/diag/tnslsnr/zm-centos7/listener/alert/log.xml
    
    Listening Endpoints Summary...
    
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
    
    Services Summary...
    
    Service "test" has 1 instance(s).
    
      Instance "testsid", status READY, has 1 handler(s) for this service...
    
    Service "testsidXDB" has 1 instance(s).
    
      Instance "testsid", status READY, has 1 handler(s) for this service...
    
    The command completed successfully

    查看oracle服务状态

    ps -ef |grep ora

     

  • 相关阅读:
    Android Studio的git功能的使用介绍
    如何用Android Studio同时使用SVN和Git管理项目
    【.NET深呼吸】动态类型(扩充篇)
    【.net深呼吸】动态类型(高级篇)
    【.net深呼吸】动态类型(娱乐篇)
    VS 2015相当不错的功能:C#交互窗口
    计算照片的面积(WPF篇)
    计算照片的面积(UWP篇)
    【Win 10应用开发】把文件嵌入到XML文档
    【.NET深呼吸】基础:自定义类型转换
  • 原文地址:https://www.cnblogs.com/luck666/p/10271573.html
Copyright © 2011-2022 走看看