Add an additional listener to Oracle Database Appliance


After deployment of Oracle Database Appliance with OAK 2.3.0 the standard listeners are configured for the public network on bond0. That includes SCAN listeners and one VIP listener per node. This last one seems to listen on both the public network interface and the VIP interface.

However, I would also like something to listen on the management network that I have configured at bond1.

What would be the preferred way of accomplishing this? Can I make the VIP listener also listen to bond1 or must I add a new listener for this?

Can I just add a listener with: srvctl add listener -p TCP:1521 -o /u01/app/

I'm at a loss to see where the ip address or interface goes into the configuration.

Support note 1063571.1 "How to Configure A Second Listener on a Separate Network in 11.2 Grid Infrastructure" covers the addition of a second production listener with associated VIP interfaces (but no second SCAN listener) to a generic 11gR2 RAC.

In this case, as this is meant to be a back door for operators and DBAs, I think it might be OK to have a basic listener directly on the physical interface on each node – eg. one that does not fail over, and only connects to the instances on that specific node.

I suppose there could also be ODA specific considerations that need to be taken into account, although none are too clear to me at this point.

Best Answer

According to Oracle Support, there should not be any special considerations on Oracle Database Appliance, and thus we can use steps common to Oracle 11gR2 RAC on Linux.

Typically this involves

  • Adding the additional interfaces to /etc/hosts
  • Adding a network resource and virtual ip resources to CRS with srvctl
  • Creating a new listener with netca
  • Adding the new listeners to the LISTENER_NETWORKS initialization parameter

If you want the new listener to live on the default port of 1521, we need to create it on a different port initially, and then manually remove the listener with srvctl and finally re-add the listener on the correct port with srvctl using the -s option. Note that due to a bug in this only works properly on and higher.

Note that the network and vip resources must be added as root, while the rest is done as the grid infrastructure owner. On oda this is "grid".

I wrote at blog post with a more detailed walk-through of how I went about this at