zoukankan      html  css  js  c++  java
  • Oracle Clusterware工具4

    应用层:

      应用层就是指RAC数据库了,这一层有若干资源组成,每个资源都是一个进程或者一组进程组成的完整服务,这一层的管理和维护都是
    围绕这些资源进行的。有如下命令: onsctl,srvctl,crs_stat三个命令。

    命令:onsctl

      这个命令用于管理配置ONS(Oracle Notification Service). ONS是Oracle Clusterware实现FAN Event Push模型的基础。在传统模型
    中,客户端需要定期检查服务器来判断服务端状态,本质上是一个pull模型,Oracle 10g引入了一个全新的PUSH机制--FAN(Fast
    Application Notification),当服务端发生某些事件时,服务器会主动的通知客户端这种变化,这样客户端就能尽早得知服务端的变化。而引入这种机制就是依赖ONS实现, 在使用onsctl命令之前,需要先配置ONS服务。

    ons配置内容

      在RAC环境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 这点需要注意。 配置文件在$CRS_HOME/opmn/conf/ons.config.

    [root@rac1 conf]#pwd
    /opt/ora10g/product/10.2.0/crs_1/opmn/conf
    [oracle@node1 conf]$ more ons.config
    localport=6113 
    remoteport=6200 
    loglevel=3
    useocr=on
    
    参数说明:
    Localport:  这个参数代表本地监听端口,这里本地特指:127.0.0.1这个回环地址,用来和运行在本地的客户端进行通信
    Remoteport:这个参数代表的是远程监听端口,也就是除了127.0.0.1以外的所有本地IP地址,用来和远程的客户端进行通信。
    Loglevel:   Oracle允许跟踪ONS进程的运行,并把日志记录到本地文件中,这个参数用来定义ONS进程要记录的日志级别,从1-9,缺省值是3.
    Logfile:    这个参数和loglevel参数一起使用,用于定义ONS进程日志文件的位置,缺省值是$CRS_HOME/opmn/logs/opmn.log
    
    nodes和useocr:这两个参数共同决定了本地的ONS daemon要和哪些远程节点上的ONS daemon进行通信。
    Nodes参数值格式如下:Hostname/IP:port[hostname/ip:port]
    如:useoce=off
    Nodes=rac1:6200,rac2:6200
    useocr参数值为on/off,如果useocr是ON, 说明信息保存在OCR中;如果是OFF,说明信息取nodes中的配置。对于单实例而言,要把useocr设置为off。

    当useocr=on时,信息保存在DATABASE.ONS_HOSTS键中。如下:

    [oracle@node1 bin]$ ./ocrdump -stdout -keyname DATABASE.ONS_HOSTS -xml|more
    
    <NAME>DATABASE.ONS_HOSTS.node1</NAME>
    <VALUE_TYPE>ORATEXT</VALUE_TYPE>
    <VALUE><![CDATA[node1]]></VALUE>
    <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
    <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
    <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
    <USER_NAME>oracle</USER_NAME>
    <GROUP_NAME>oinstall</GROUP_NAME>
    
    <NAME>DATABASE.ONS_HOSTS.node1.PORT</NAME>
    <VALUE_TYPE>ORATEXT</VALUE_TYPE>
    <VALUE><![CDATA[6200]]></VALUE>
    <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
    <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
    <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
    <USER_NAME>oracle</USER_NAME>
    <GROUP_NAME>oinstall</GROUP_NAME>
    ..........
    
    <NAME>DATABASE.ONS_HOSTS.node2</NAME>
    <VALUE_TYPE>ORATEXT</VALUE_TYPE>
    <VALUE><![CDATA[node2]]></VALUE>
    <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
    <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
    <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
    <USER_NAME>oracle</USER_NAME>
    <GROUP_NAME>oinstall</GROUP_NAME>
    
    <NAME>DATABASE.ONS_HOSTS.node2.PORT</NAME>
    <VALUE_TYPE>ORATEXT</VALUE_TYPE>
    <VALUE><![CDATA[6200]]></VALUE>
    <USER_PERMISSION>PROCR_ALL_ACCESS</USER_PERMISSION>
    <GROUP_PERMISSION>PROCR_READ</GROUP_PERMISSION>
    <OTHER_PERMISSION>PROCR_READ</OTHER_PERMISSION>
    <USER_NAME>oracle</USER_NAME>
    <GROUP_NAME>oinstall</GROUP_NAME>
    .....
    [oracle@node1 bin]$ 

    配置ons:

      可以直接编译ONS的配置文件来修改配置。如果使用了OCR,则可以通过racgons命令进行配置,但必须以root用户来执行,如果用oracle用户来执行,不会提示任何错误,但也不会更改任何配置。

    若要添加配置,可以使用下面命令:
    Racgons add_config rac1:6200 rac2:6200
    若要删除配置,可以用下面命令:
    Racgons remove_config rac1:6200 rac2:6200

    onsctl命令:

      使用onsctl命令可以启动,停止,调试ONS,并重新载入配置文件,其命令格式如下:

    [oracle@node1 bin]$ ./onsctl
    usage: ./onsctl start|stop|ping|reconfig|debug
    
    start                            - Start opmn only.
    stop                             - Stop ons daemon
    ping                             - Test to see if ons daemon is running
    debug                            - Display debug information for the ons daemon
    reconfig                         - Reload the ons configuration
    help                             - Print a short syntax description (this).
    detailed                         - Print a verbose syntax description.
    
    [oracle@node1 bin]$

    示例:

    1.在OS级别查看进程状态。
    [oracle@node1 bin]$ ps -ef|grep -v grep |grep ons
    oracle    5909     1  0 21:59 ?        00:00:00 /opt/ora10g/product/10.2.0/crs_1/opmn/bin/ons -d
    oracle    5910  5909  0 21:59 ?        00:00:00 /opt/ora10g/product/10.2.0/crs_1/opmn/bin/ons -d
    [oracle@node1 bin]$
    
    2.确认ONS服务的状态
    [oracle@node1 bin]$ ./onsctl ping
    Number of onsconfiguration retrieved, numcfg = 2
    onscfg[0]
       {node = node1, port = 6200}
    Adding remote host node1:6200
    onscfg[1]
       {node = node2, port = 6200}
    Adding remote host node2:6200
    ons is running ...
    [oracle@node1 bin]$ 
    
    3.启动ONS服务
    [root@rac1 bin]#./onsctl start

    4.使用debug选项,可以查看详细信息,其中最有意义的就是能显示所有连接:

    [oracle@node1 bin]$ ./onsctl debug
    Number of onsconfiguration retrieved, numcfg = 2
    onscfg[0]
       {node = node1, port = 6200}
    Adding remote host node1:6200
    onscfg[1]
       {node = node2, port = 6200}
    Adding remote host node2:6200
    HTTP/1.1 200 OK
    Content-Length: 1357
    Content-Type: text/html
    Response: 
    
    
    ======== ONS ========
    
    Listeners:
    
     NAME    BIND ADDRESS   PORT   FLAGS   SOCKET
    ------- --------------- ----- -------- ------
    Local   127.000.000.001  6113 00000142      7
    Remote  192.168.002.100  6200 00000101      8
    Request     No listener
    
    Server connections:
    
        ID           IP        PORT    FLAGS    SENDQ     WORKER   BUSY  SUBS
    ---------- --------------- ----- -------- ---------- -------- ------ -----
             1 192.168.002.101  6200 00104205          0               1     0
    
    Client connections:
    
        ID           IP        PORT    FLAGS    SENDQ     WORKER   BUSY  SUBS
    ---------- --------------- ----- -------- ---------- -------- ------ -----
             3 127.000.000.001  6113 0001001a          0               1     0
             4 127.000.000.001  6113 0001001a          0               1     1
    
    Pending connections:
    
        ID           IP        PORT    FLAGS    SENDQ     WORKER   BUSY  SUBS
    ---------- --------------- ----- -------- ---------- -------- ------ -----
             0 127.000.000.001  6113 00020812          0               1     0
    
    Worker Ticket: 7/7, Idle: 208
    
       THREAD   FLAGS
      -------- --------
      b7ec0b90 00000012
      b6d03b90 00000012
      b6302b90 00000012
    
    Resources:
    
      Notifications:
        Received: 3, in Receive Q: 0, Processed: 3, in Process Q: 0
    
      Pools:
        Message: 24/25 (1), Link: 25/25 (1), Subscription: 24/25 (1)
    [oracle@node1 bin]$ 

    --整理自《大话 oracle rac》

  • 相关阅读:
    python--HTTPClient接口测试踩坑
    python打印cookies获取cookie
    BeanShell使用json.jar包处理Json数据
    禁用缓存的过滤器Filter
    过滤器Filter(拦截jsp页面的跳转)案例:
    MVC模式:实现数据库中数据的增删改查功能
    JSTL.带标签体的标签,方法和例子
    javaBean的使用方法;
    JSTL,自定义一个标签的功能案例
    利用Session实现一次验证码
  • 原文地址:https://www.cnblogs.com/polestar/p/3137994.html
Copyright © 2011-2022 走看看