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》

 

你可能感兴趣的:(cluster)