• HOW TO USE ORACLE RESTART IN ORACLE 11GR2


    HOW TO USE ORACLE RESTART IN ORACLE 11GR2

    Oracle Restart是数据库组件监控方法向单实例数据库中的延展,之前srvctl命令可以用来管理RAC数据库中的各个组件,安装了Oracle Restart之后,对于单实例数据库组件(包括数据库实例,监听,ASM实例,ASM磁盘组,自建Service等)也可以使用srvctl命令来管理,同时Oracle会在这些组件发生意外关闭的时候自动重新启动。对于在Linux单机上安装的Oracle Instance,以前需要配置dbstart或者dbstop脚本来实现在操作系统起停时自动起停数据库实例的操作,现在通过Oracle Restart则无需这两个脚本了。

    详细文档请参看 About Oracle Restart

    安装其实很简单,实际上没有单独安装Oracle Restart的过程,只需要安装Oracle Grid Infrastructure就可以,在安装的时候选择“仅安装网格基础结构软件”,我们的测试环境没有使用ASM,因此选择只安装软件可以跳过配置ASM的步骤。

    如何在Windows单机上测试ASM,感兴趣的朋友可以参看 – How to use Files in place of Real Disk Devices for ASM

    在安装完GI以后,还需要使用root用户运行以下脚本,否则在$GI_HOME/bin目录中不会生成例如crsctl,crs_start之类的脚本,当然Oracle Restart也不会启动。

    # $GRID_HOME/crs/install/roothas.pl

    在运行完roothas.pl以后,可以使用crsctl命令来查看HAS(High Availability Services)的运行情况。

    $ crsctl status res -t
    --------------------------------------------------------------------------------
    NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.ons
                   OFFLINE OFFLINE      solaris                                      
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        OFFLINE OFFLINE                                                   
    ora.diskmon
          1        OFFLINE OFFLINE                                                   
    ora.evmd
          1        ONLINE  ONLINE       solaris 

    我们是在创建完数据库之后再安装Grid Infrastructure的,因此还需要手工将数据库实例和监听加入Oracle Restart配置中,根据文档如果是在装完Grid Infrastructure之后再用netca创建监听,dbca创建数据库的话,将会自动加入Oracle Restart中,我个人没有测试。

    添加数据库实例:

    srvctl add database -d orcl -o D:\oracle\product\11.2.0\dbhome_1

    检查配置情况:

    D:\Temp>srvctl config database -d orcl
    数据库唯一名称: orcl
    数据库名:
    Oracle 主目录: D:\oracle\product\11.2.0\dbhome_1
    Oracle 用户: system
    Spfile:
    域:
    启动选项: open
    停止选项: immediate
    数据库角色: PRIMARY
    管理策略: AUTOMATIC
    磁盘组:
    服务:

    检查数据库实例状态:

    D:\Temp>srvctl status database -d orcl
    数据库正在运行。

    注意:如果在添加数据库实例之前数据库实例已经启动了,那么需要重新启动一次数据库,Oracle Restart才能正确监视到数据库实例状态。

    添加监听:

    srvctl add listener -o D:\oracle\product\11.2.0\dbhome_1

    注意,如果是分用户安装(比如在Linux操作系统中),比如GI以grid用户安装,Oracle Database以oracle用户安装,那么在添加监听的时候应该指定GI_HOME,而非ORACLE_HOME。命令如下:

    $ srvctl add listener -o /u02/app/oracle/product/11.2.0/grid

    否则在用srvctl start listner命令启动监听的时候,会报错。

    $ srvctl start listener
    PRCR-1079 : Failed to start resource ora.LISTENER.lsnr
    CRS-5010: Update of configuration file "/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora" failed: details at "(:CLSN00014:)" in "/u02/app/oracle/product/11.2.0/grid/log/solaris/agent/ohasd/oraagent_grid/oraagent_grid.log"
    CRS-2674: Start of 'ora.LISTENER.lsnr' on 'solaris' failed

    如果在添加监听的时候,监听已经启动,那么会遇到PRCN-2065错误,停止监听以后再次添加即可。

    D:\Temp>srvctl add listener -o D:\oracle\product\11.2.0\dbhome_1
    PRCN-2061 : 无法添加监听程序 ora.LISTENER.lsnr
    PRCN-2065 : 端口 1521 在指定的节点上不可用
    PRCN-2035 : 端口 1521 在节点或虚拟主机上不可用: Kamus-PC

    配置完毕以后,就可以通过srvctl命令起停数据库实例和监听了。

    srvctl start|stop database -d <db_unique_name>
    srvctl start|stop listener [-l <lsnr_name>]

    可以通过crs_stat命令查看Oracle Restart管理的各个资源情况,这以前是我们查看Oracle Clusterware的方式。

    D:\Temp>crs_stat -t
    Name           Type           Target    State     Host
    ------------------------------------------------------------
    ora....ER.lsnr ora....er.type ONLINE    ONLINE    kamus-pc
    ora.cssd       ora.cssd.type  ONLINE    ONLINE    kamus-pc
    ora.orcl.db    ora....se.type ONLINE    ONLINE    kamus-pc

    测试Oracle Restart的功能,我们可以在后台进程中直接杀死oracle.exe,可以观察到数据库实例立刻会重新启动。

    注意:所有在SQL*PLUS中发出的关闭数据库命令均不会导致Oracle Restart重启实例,包括shutdown abort。

    如果暂时不想用Oracle Restart管理某个资源,可以通过srvctl disable命令暂时禁用,需要的时候再enable即可。

    srvctl disable database -d orcl

    如果机器名称发生了改变,需要重新配置Oracle Restart,请参考Metalink Note [ID 986740.1]

  • 相关阅读:
    转载 jenkins执行selenium 测试 浏览器不显示解决方法
    jmeter用beanshell调用自己写的jar进行MD5加密
    深入理解Spring MVC 思想
    springmvc和json整合配置方法
    getFragmentManager和getChildFragmentManager
    android
    HTTP 请求头与请求体
    Android中ImnageView 中如何让图片拉伸显示?
    ExecutorService 的理解与使用
    SpringMVC源码分析系列
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/15596250.html
Copyright © 2020-2023  润新知