Friday, February 20, 2009

ONS Port and CRS Installation

Introduction

Most installations performed by the Oracle Universal Installer (OUI) selects port numbers only that are freely available on the host. However, one service that always fixes its port number during installation is the ONS service (Oracle Notification Service). As part of setting up the High Availability features for the Single Sign-On system, I have installed Oracle Cluster Ready Services (CRS) on Linux platform to convert the existing Metadata repository into a highly available database cluster. The installation completed successfully, however configuring the Virtual IPs was a problem (vipca). The ons service on the Node2 refuses to start.
Upon further investigation, I found the OUI assigned 6200 as the ONS port ( $CRS_ORACLE_HOME/opmn/conf/ons.config ), which is already in use by a different Oracle software on the same host.
Solution
  • Login to the cluster node2 where ONS service did not start
  • srvctl stop nodeapps -n node2
  • $CRS_ORACLE_HOME/bin/racgons.bin remove_config node2:6200
  • $CRS_ORACLE_HOME/bin/racgons.bin add_config node2:6299 ( non-default port )
  • Update $CRS_ORACLE_HOME/opmn/conf/ons.config and replace the remoteport=6200 with remoteport=6299
  • Run $CRS_ORACLE_HOME/bin/vipca again (It should complete successfully this time)
  • $CRS_ORACLE_HOME/crs_stat -t ( Verify ONS service is ONLINE )
Conclusion
As a best practice, one should install new Oracle software with all existing applications up and running so that the OUI only chooses port numbers that are not in use. However, it does not seem to be the case for the ONS port, because the OUI always sticks to the 6200. As a good practice, one can avoid problems during future Oracle installations on a given host by changing the ONS port from the default 6200 to a non-default value in the current installation.

2 comments:

Anonymous said...

How about specifying the port numbers in the staticports.ini before the installation ?

Anonymous said...

I found this article becauses I needed to find out which port ONS service took. Probably it is not much related to this post, but another way rather than digging inside ons.config is to run this:
srvctl config nodeapps
Most likely you know it, but I felt it worth to mention.
P.S. Why the color is pink? Is this kind of a glamour DBA? ;)