[Oracle]oracle ONS服务


本文总阅读量

1、ONS(Oracle Notification Service)是Oracle Clusterware 实现FAN Event Push模型的基础。

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

2、ons配置文件在grid的安装目录下/u01/app/11.2.0.4/grid/opmn/conf
more ons.config

1
2
3
4
5
usesharedinstall=true
allowgroup=true
localport=6100 # line added by Agent
remoteport=6200 # line added by Agent
nodes=rac1:6200,rac2:6200 # line added by Agent

<1>localport:这个参数代表本地监听端口,这里的”本地”特指127.0.0.1这个回环地址,用来和运行在本地的客户端进行通信。
<2>remoteport:这个参数代表的远程监听端口,也就是除了127.0.0.1以外的所有本机IP地址,用来和远程的客户端进行通信。
<3>loglevel:Oracle允许跟踪ONS进程的运行,并把日志记录到本地文件中。这个参数用来定义ONS进程要记录的日志级别, 从1~9,缺省值为3。
<4>logfile:这个参数和loglevel参数一起使用,用于定义ONS进程日志文件的位置,缺省是 $CRS_HOME/opmn/logs/opmn.log。
<5>nodes和useocr:这两个参数共同决定了本机的ONS daemon要和哪些节点上的ONS daemon进行通信。

3、查看ons启动端口

1
2
3
4
5
6
7
netstat -tunlp|grep ons
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
tcp 0 0 127.0.0.1:6100 0.0.0.0:* LISTEN 2230/ons
tcp6 0 0 ::1:6100 :::* LISTEN 2230/ons
tcp6 0 0 :::6200 :::* LISTEN 2230/ons

4、onsctl命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[grid@rac1 opmn]$ onsctl help
usage: onsctl [verbose] <command> [<options>]
The verbose option enables debug tracing and logging (for the server start).
Permitted <command>/<options> combinations are:
command options
------- ---------
start - Start ons
shutdown - Shutdown ons
reload - Trigger ons to reread its configuration file
debug [<attr>=<val> ..] - Display ons server debug information
set [<attr>=<val> ..] - Set ons log parameters
query [<attr>=<val>] - Query ons log parameters
ping [<max-retry>] - Ping local ons
help - Print brief usage description (this)
usage [<command>] - Print detailed usage description

ons进程在的情况下,不一定能确保ons状态正常,需要使用ping参数确认一下

1
2
[grid@rac1 opmn]$ onsctl ping
ons is running ...

5、停止启动ons服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
停止ons服务
[grid@rac1 opmn]$ onsctl stop
CRS-2673: Attempting to stop 'ora.ons' on 'rac1'
CRS-2677: Stop of 'ora.ons' on 'rac1' succeeded
查看ons服务在节点1上已经offline
[grid@rac1 opmn]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
OFFLINE OFFLINE rac1
ONLINE ONLINE rac2
使用ons的ping参数去测试节点,提示ons已经没有运行了
[grid@rac1 opmn]$ onsctl ping
ons is not running ...
重新启动ons
[grid@rac1 opmn]$ onsctl start
CRS-2672: Attempting to start 'ora.ons' on 'rac1'
CRS-2676: Start of 'ora.ons' on 'rac1' succeeded

6、配置ONS

1
2
3
4
5
6
7
使用racgons参数之前,需要修改ons.config配置文件,添加userocr=on参数
添加ONS:
racgons add_config hostname:port [hostname:port] [hostname:port]
$ racgons add_config rac1:6200 rac2:6200
删除ONS:
racgons remove_config hostname[:port] [hostname:port] [hostname:port]
$ racgons remove_config rac1:6200 rac2:6200

注意:racgons命令建议用root身份执行,如果使用oracle、grid身份执行这个命令,不会提示任何错误信息,但是也不会更改任何配置。

7、ONS服务也可以由srvctl工具来维护,还可以跟踪ons的信息。下面是查看ons配置信息

1
2
3
$srvctl config nodeapps -s
[grid@rac1 ~]$ srvctl config nodeapps -s
ONS exists: Local port 6100, remote port 6200, EM port 2016
目录

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog