目錄
Onsctl
配置ONS:
Onsctl命令:
Configuring ONS for Fast Connection Failover
ONS Configuration File
Client-Side ONS Configuration
Server-Side ONS Configuration Using racgons
Remote ONS Subscription
Enabling Fast Connection Failover
Querying Fast Connection Failover Status
Understanding Fast Connection Failover
What the Application Sees
How It Works
Comparison of Fast Connection Failover and TAF
首頁 資料庫 mysql教程 管理ONS(OracleNotificationService)

管理ONS(OracleNotificationService)

Jun 07, 2016 pm 03:59 PM
管理

Onsctl Onsctl这个命令是用来管理ONS(Oracle Notification Service)是OracleClustser实现FAN Event Push模型的基

Onsctl

Onsctl这个命令是用来管理ONS(Oracle Notification Service)是OracleClustser实现FAN Event Push模型的基础。

Oracle Notification Service (ONS)--A publish and subscribe service for communicating Fast Application Notification (FAN) events.

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

[oracle@felix2 conf]$ pwd

/u01/oracle/10.2.0/crs_1/opmn/conf

[oracle@felix2 conf]$ cat ons.config

localport=6113

remoteport=6200

loglevel=3

useocr=on

[oracle@felix2 conf]$ netstat -ano | grep 6200

tcp 0 0 0.0.0.0:6200 0.0.0.0:* LISTEN off (0.00/0/0)

tcp 0 0 192.168.10.102:8471 192.168.10.101:6200 ESTABLISHED off (0.00/0/0)

[oracle@felix2 conf]$ netstat -ano | grep 6113

tcp 0 0 127.0.0.1:6113 0.0.0.0:* LISTEN off (0.00/0/0)

tcp 0 0 127.0.0.1:42331 127.0.0.1:6113 ESTABLISHED keepalive (2251.34/0/0)

tcp 0 0 127.0.0.1:42328 127.0.0.1:6113 ESTABLISHED keepalive (2185.99/0/0)

tcp 0 0 127.0.0.1:6113 127.0.0.1:42331 ESTABLISHED off (0.00/0/0)

tcp 0 0 127.0.0.1:6113 127.0.0.1:42328 ESTABLISHED off (0.00/0/0)

unix 3 [ ] STREAM CONNECTED 6113

[oracle@felix2 conf]$

配置ONS:

添加ONS:

[oracle@felix2 conf]$ racgons add_configfelix11:6200 felix22:6200

删除ONS:

[oracle@felix2 conf]$ racgons remove_configfelix11:6200 felix22:6200

[oracle@felix2 conf]$

Onsctl命令:

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

注意:

ONS进程运行,并不一定代表ONS正常工作,需要使用ping命令来确认。

[oracle@felix2 conf]$ onsctl

usage: /u01/oracle/10.2.0/db_1/bin/onsctlstart|stop|ping|reconfig|debug

start - Start opmn only.

stop - Stop ons daemon

ping - Test to see ifons daemon is running

debug - Display debuginformation for the ons daemon

reconfig - Reload the onsconfiguration

help - Print a shortsyntax description (this).

detailed - Print a verbosesyntax description. 

(1)在os级别查看进程

[oracle@felix2 conf]$ ps -ef | grep ons

root 2530 1 0 20:19 ? 00:00:00 sendmail: acceptingconnections

oracle 5223 1 0 20:22 ? 00:00:00/u01/oracle/10.2.0/crs_1/opmn/bin/ons -d

oracle 5224 5223 0 20:22 ? 00:00:00 /u01/oracle/10.2.0/crs_1/opmn/bin/ons-d

oracle 10833 29589 0 21:59 pts/2 00:00:00 grep ons

[oracle@felix2 conf]$ 

(2)确认ONS服务的状态 

[oracle@felix2 conf]$ onsctl ping

Number of configuration nodes retrieved: 2

0: {node = felix1, port = 6200}

Adding remote host felix1:6200

1: {node = felix2, port = 6200}

Remote port for local node in local config doesnot match that from OCR.

ons is not running ...

[oracle@felix2 conf]$ 

从输出的信息课件,ONS服务是停止的。 

(3)启动ONS服务

[oracle@felix2 conf]$ onsctl start

Number of configuration nodes retrieved: 2

0: {node = felix1, port = 6200}

Adding remote host felix1:6200

1: {node = felix2, port = 6200}

……

…… 

Configuring ONS for Fast Connection Failover

In order for Fast Connection Failover to work, you must configure ONS correctly. ONS is shipped as part of Oracle Database 11g.

This section covers the following topics:

ONS Configuration File

Client-Side ONS Configuration

Server-Side ONS Configuration Using racgons

Remote ONS Subscription

ONS Configuration File

ONS configuration is controlled by the ONS configuration file, ORACLE_HOME/opmn/conf/ons.config. This file tells the ONS daemon details about how it should behave and who it should talk to. Configuration information within ons.config is defined in simple name and value pairs. There are three values that should always be configured within ons.config. The first is localport, the port that ONS binds to on the localhost interface to talk to local clients. An example of thelocalport configuration is the following:

localport=4100
登入後複製

The second value is remoteport, the port that ONS binds to on all interfaces for talking to other ONS daemons. An example of the remoteport configuration is the following:

remoteport=4200
登入後複製

The third value specifies nodes, a list of other ONS daemons to talk to. Node values are given as a comma-delimited list of either host names or IP addresses plus ports. Note that the port value that is given is the remote port that each ONS instance is listening on. In order to maintain an identical file on all nodes, thehost:port of the current ONS node can also be listed in the nodes list. It will be ignored when reading the list.

The nodes listed in the nodes line correspond to the individual nodes in the RAC instance. Listing the nodes ensures that the middle-tier node can communicate with the RAC nodes. At least one middle-tier node and one node in the RAC instance must be configured to see one another. As long as one node on each side is aware of the other, all nodes are visible. You need not list every single cluster and middle-tier node in the ONS config file of each Oracle RAC node. In particular, if one ONS config file cluster node is aware of the middle tier, then all nodes in the cluster are aware of it.

An example of the nodes configuration is the following:

nodes=myhost.example.com:4200,123.123.123.123:4200
登入後複製

There are also several optional values that can be provided in ons.config.The first optional value is a loglevel. This specifies the level of messages that should be logged by ONS. This value is an integer that ranges from 1, which indicates least messages logged, to 9, which indicates most messages logged. The default value is 3. The following is an example:

loglevel=3
登入後複製

The second optional value is a logfile name. This specifies a log file that ONS should use for logging messages. The default value for logfile is$ORACLE_HOME/opmn/logs/ons.log. The following is an example:

logfile=/private/oraclehome/opmn/logs/myons.log
登入後複製

The third optional value is a walletfile name. A wallet file is used by the Oracle Secure Sockets Layer (SSL) to store SSL certificates. If a wallet file is specified to ONS, it will use SSL when communicating with other ONS instances and require SSL certificate authentication from all ONS instances that try to connect to it. This means that if you want to turn on SSL for one ONS instance, then you must turn it on for all instances that are connected. This value should point to the directory where your ewallet.p12 file is located. The following is an example:

walletfile=/private/oraclehome/opmn/conf/ssl.wlt/default
登入後複製

One optional value is reserved for use on the server-side. useocr=on is used to tell ONS to store all Oracle RAC nodes and port numbers in Oracle Cluster Registry (OCR) instead of in the ONS configuration file. Do not use this option on the client-side.

The ons.config file allows blank lines and comments on lines that begin with the number sign (#).

Client-Side ONS Configuration

You can access the client-side ONS through ORACLE_HOME/opmn. On the client-side, there are two ways to set up ONS:

Remote ONS configuration

See Also:

"Remote ONS Subscription"

ONS daemon on the client-side

Example 26-1 illustrates how a sample configuration file may look.

Example 26-1 Example of a Sample ons.config File

# This is an example ons.config file
#
# The first three values are required
localport=4100
remoteport=4200
nodes=racnode1.example.com:4200,racnode2.example.com:4200
登入後複製

After configuring ONS, you start the ONS daemon with the onsctl command. It is the user's responsibility to make sure that an ONS daemon is running at all times.

Using the onsctl Command

After configuring, use ORACLE_HOME/opmn/bin/onsctl to start, stop, reconfigure, and monitor the ONS daemon. Table 26-1 is a summary of the commands thatonsctl supports.

Table 26-1 onsctl Commands

Command Effect Output

start

Starts the ONS daemon

onsctl: ons started

stop

Stops the ONS daemon

onsctl: shutting down ons daemon...

ping

Verifies whether or not the ONS daemon is running

ons is running ...

reconfig

Triggers a reload of the ONS configuration without shutting down the ONS daemon

help

Prints a help summary message for onsctl

detailed

Prints a detailed help message for onsctl

Server-Side ONS Configuration Using racgons

You can access the server-side ONS through ORA_CRS_HOME/opmn. You configure the server-side by using racgons to add the middle-tier node information to OCR. This command is found in ORA_CRS_HOME/bin/racgons. Before using racgons, you must edit ons.config to set useocr=on.

The middle-tier nodes should be configured in OCR, so that all nodes share the configuration, and no matter which Oracle RAC nodes are up they can communicate to the middle-tier. When running on a cluster, always configure the ONS hosts and ports not by using the ONS configuration files but usingracgons. The racgons command stores the ONS hosts and ports in OCR, where every node can see it. That way, you do not need to edit a file on every node to change the configuration, just run a single command on one of the cluster nodes.

The racogns command enables you to specify hosts and ports on one node, then propagate your changes among all nodes in a cluster. The command takes two forms:

racgons add_config hostname:port [hostname:port] [hostname:port] ...
racgons remove_config hostname[:port] [hostname:port] [hostname:port] ...
登入後複製

The add_config version adds the listed host name(s), the remove_config version removes them. Both commands propagate the changes among all instances in a cluster.

If multiple port numbers are configured for a host, the specified port number is removed from hostname. If only hostname is specified, all port numbers for that host are removed.

See Also:

Oracle Real Application Clusters Administration and Deployment Guide

Other Uses of racgons

You should run racgons whenever you add a new node to the cluster.

Remote ONS Subscription

The advantages of remote ONS subscription are the following:

Support for an All Java middle-tier stack

No ONS daemon needed on the client computer and, therefore, no need to manage this process

Simple configuration using the DataSource property

When using remote ONS subscription for Fast Connection Failover, the application invokes the following method on an OracleDataSource instance:

setONSConfiguration(String remoteONSConfig)
登入後複製

The remoteONSConfig parameter is a list of name and value pairs of the form name=value that are separated by a new line character (\n). name can be one ofnodes, walletfile, or walletpassword. This parameter should specify at least the nodes ONS configuration attribute, which is a list of host:port pairs, each pair separated by comma (,). The hosts and ports denote the remote ONS daemons available on the Oracle RAC nodes.

See Also:

"ONS Configuration File"

SSL could be used in communicating with the ONS daemons when the walletfile attribute is specified as an Oracle wallet file. In such cases, if thewalletpassword attribute is not specified, single sign-on (SSO) would be assumed.

Following are a few examples, assuming ods is an OracleDataSource instance:

ods.setONSConfiguration("nodes=racnode1.example.com:4200,racnode2.example.com:4200");

ods.setONSConfiguration("nodes=racnode1:4200,racnode2:4200\nwalletfile=/mydir/Wallet\nwalletpassword=mypasswd");

ods.setONSConfiguration("nodes=racnode1:4200,racnode2:4200\nwalletfile=/mydir/conf/Wallet");
登入後複製

Note:

The ons.jar file must be in the CLASSPATH on the client. In the case of Oracle Application Server, ONS is embedded in Oracle Process Manager and Notification Server (OPMN), as before, and JDBC Fast Connection Failover continues to work as before.

Enabling Fast Connection Failover

An application enables Fast Connection Failover by calling setFastConnectionFailoverEnabled(true) on a DataSource instance, before retrieving any connections from that instance.

You cannot enable Fast Connection Failover when reinitializing a connection cache. You must enable it before using the OracleDataSource instance.

Example 26-2 illustrates how to enable Fast Connection Failover.

Note:

After a cache is Fast Connection Failover-enabled, you cannot disable Fast Connection Failover during the lifetime of that cache.

To enable Fast Connection Failover, you must perform the following:

Configure and start ONS. If ONS is not correctly set up, then implicit connection cache creation fails and an ONSException is thrown at the firstgetConnection request.

Set the FastConnectionFailoverEnabled property before making the first getConnection request to an OracleDataSource. When Fast Connection Failover is enabled, the failover applies to all connections in the connection cache. If your application explicitly creates a connection cache using the Connection Cache Manager, then you must first set FastConnectionFailoverEnabled before retrieving any connections.

Use a service name rather than a service identifier when setting the OracleDataSource url property.

Example 26-2 Enabling Fast Connection Failover

// declare datasource
ods.setUrl(
"jdbc:oracle:oci:@(DESCRIPTION=
  (ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias)
    (PORT=1521))
    (CONNECT_DATA=(SERVICE_NAME=service_name)))");
ods.setUser("scott");
ods.setConnectionCachingEnabled(true);
ods.setFastConnectionFailoverEnabled(true):
ctx.bind("myDS",ods);
ds=(OracleDataSource) ctx.lookup("MyDS");
try {
 ds.getConnection();  // transparently creates and accesses cache
 catch (SQLException SE {
  }
}
...
登入後複製

Querying Fast Connection Failover Status

An application determines if Fast Connection Failover is enabled by calling OracleDataSource.getFastConnectionFailoverEnabled, which returns true if failover is enabled, false otherwise.

Understanding Fast Connection Failover

After Fast Connection Failover is enabled, the mechanism is automatic; no application intervention is needed. This section discusses how a connection failover is presented to an application and what steps the application takes to recover.

This section covers the following topics:

What the Application Sees

How It Works

What the Application Sees

By the time an Oracle RAC service failure is propagated to the JDBC application, the database already rolls back the local transaction. The cache manager then cleans up all invalid connections. When an application holding an invalid connection tries to do work through that connection, it is possible to receiveSQLException, ORA-17008, Closed Connection.

When an application receives a Closed Connection error message, it should do the following:

Retry the connection request. This is essential, because the old connection is no longer open.

Replay the transaction. All work done before the connection was closed has been lost.

Note:

The application should not try to roll back the transaction. The transaction was already rolled back in the database by the time the application received the exception.

How It Works

Under Fast Connection Failover, each connection in the cache maintains a mapping to a service, instance, database, and host name.

When a database generates an Oracle RAC event, that event is forwarded to the JVM in which JDBC is running. A daemon thread inside the JVM receives the Oracle RAC event and passes it on to the Connection Cache Manager. The Connection Cache Manager then throws SQL exceptions to the applications affected by the Oracle RAC event.

A typical failover scenario may work like the following:

A database instance fails, leaving several stale connections in the cache.

The RAC mechanism in the database generates an Oracle RAC event which is sent to the JVM containing JDBC.

The daemon thread inside the JVM finds all the connections affected by the Oracle RAC event, notifies them of the closed connection through SQL exceptions, and rolls back any open transactions.

Each individual connection receives a SQL exception and must retry.

Comparison of Fast Connection Failover and TAF

Fast Connection Failover differs from Transparent Application Failover (TAF) in the following ways:

Application-level connection retries

Fast Connection Failover supports application-level connection retries. This gives the application control of responding to connection failovers. The application can choose whether to retry the connection or to rethrow the exception. TAF supports connection retries only at the OCI/Net layer.

Integration with the implicit connection cache

Fast Connection Failover is well-integrated with the implicit connection cache, which allows the Connection Cache Manager to manage the cache for high availability. For example, failed connections are automatically invalidated in the cache. TAF works at the network level on a per-connection basis, which means that the connection cache cannot be notified of failures.

Event-based

Fast Connection Failover is based on the Oracle RAC event mechanism. This means that Fast Connection Failover is efficient and detects failures quickly for both active and inactive connections.

Load-balancing support

Fast Connection Failover supports UP event load balancing of connections and run-time work request distribution across active Oracle RAC instances.

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何利用Redis實現分散式事務管理 如何利用Redis實現分散式事務管理 Nov 07, 2023 pm 12:07 PM

如何利用Redis實現分散式事務管理引言:隨著網際網路的快速發展,分散式系統的使用越來越廣泛。在分散式系統中,事務管理是一項重要的挑戰。傳統的事務管理方式在分散式系統中難以實現,且效率低。而利用Redis的特性,我們可以輕鬆實現分散式事務管理,提高系統的效能和可靠性。一、Redis簡介Redis是一種基於記憶體的資料儲存系統,具有高效的讀寫效能和豐富的數據

Laravel擴充包管理:輕鬆整合第三方程式碼和功能 Laravel擴充包管理:輕鬆整合第三方程式碼和功能 Aug 25, 2023 pm 04:07 PM

Laravel擴充包管理:輕鬆整合第三方程式碼和功能引言:在Laravel開發中,我們經常使用第三方程式碼和功能來提高專案的效率和穩定性。而Laravel擴充包管理系統讓我們可以輕鬆整合這些第三方程式碼和功能,使得我們的開發工作更加便利和有效率。本文將介紹Laravel擴充包管理的基本概念和使用方法,並透過一些實際的程式碼範例來幫助讀者更好地理解和應用。什麼是Lara

如何實現Java中的學生成績管理功能? 如何實現Java中的學生成績管理功能? Nov 04, 2023 pm 12:00 PM

如何實現Java中的學生成績管理功能?在現代教育系統中,學生成績管理是一項非常重要的任務。透過對學生成績的管理,學校能夠更好地監測學生的學習進度、了解他們的弱點和優勢,並根據這些資訊做出更有針對性的教學計劃。在這篇文章中,我們將討論如何使用Java程式語言來實現學生成績管理功能。首先,我們需要確定學生成績的資料結構。通常,學生成績可以被表示為一個包含學生訊息

如何在麒麟作業系統上進行網路伺服器的設定與管理? 如何在麒麟作業系統上進行網路伺服器的設定與管理? Aug 04, 2023 pm 09:25 PM

如何在麒麟作業系統上進行網路伺服器的設定與管理?麒麟作業系統是中國自主開發的一種基於Linux的作業系統。它具有開源、安全、穩定等特點,在國內得到了廣泛的應用。本文將介紹如何在麒麟作業系統上進行網頁伺服器的設定與管理,幫助讀者更能建構和管理自己的網路伺服器。一、安裝相關軟體在開始設定和管理網路伺服器之前,我們需要先安裝一些必要的軟體。在麒麟作業系統上,可以

win10右鍵選單管理打不開怎麼辦 win10右鍵選單管理打不開怎麼辦 Jan 04, 2024 pm 07:07 PM

我們在使用win10系統的時候,使用滑鼠去右鍵桌面或是右鍵選單的時候,發現選單等都打不開,無法正常的去使用電腦了,這時候就需要恢復系統來解決問題。 win10右鍵選單管理打不開:1、先開啟我們的控制面板,然後點選。 2、然後點選安全性和維護下的。 3.再點擊右側的來恢復系統即可。 4.如果還是無法使用,是看是否是滑鼠本身出了問題。 5.如果確定滑鼠沒有問題的話,按下+,輸入。 6.執行完畢後,重啟電腦即可。

MongoDB技術開發中遇到的事務管理問題解決方案分析 MongoDB技術開發中遇到的事務管理問題解決方案分析 Oct 08, 2023 am 08:15 AM

MongoDB技術開發中遇到的事務管理問題解決方案分析隨著現代應用程式變得越來越複雜和龐大,對資料的事務處理需求也越來越高。作為一種流行的NoSQL資料庫,MongoDB在資料管理方面有著出色的效能和擴展性。然而,MongoDB在資料一致性和事務管理方面相對較弱,為開發人員帶來了挑戰。在本文中,我們將探討在MongoDB開發中遇到的事務管理問題,並提出一些解

如何對磁碟進行分割管理 如何對磁碟進行分割管理 Feb 25, 2024 pm 03:33 PM

磁碟管理怎麼分割區隨著電腦科技的不斷發展,磁碟管理也成為了我們電腦使用過程中不可或缺的一部分。而磁碟分割作為磁碟管理的重要環節,它可以將一個硬碟劃分為多個部分,使得我們能夠更有彈性地儲存和管理資料。那麼,磁碟管理怎麼分割區呢?下面,我將給大家詳細介紹。首先,我們需要明確一點,磁碟分割區並非只有一種分法,根據不同的需求和目的,我們可以靈活地選擇合適的磁碟分割方式。常

如何使用Hyperf框架進行快取管理 如何使用Hyperf框架進行快取管理 Oct 21, 2023 am 08:36 AM

如何使用Hyperf框架進行快取管理快取是提高應用效能的重要手段之一,而現代框架為我們提供了更便利的快取管理工具。本文將介紹如何使用Hyperf框架進行快取管理,並提供具體的程式碼範例。 Hyperf框架是基於Swoole拓展開發的高效能框架,內建了豐富的元件和工具,其中包括強大的快取管理功能。 Hyperf框架支援多種快取驅動,如Redis、Memcach

See all articles