Oracle RAC 11g Release 2 supports client connections across multiple networks. This release also provides load balancing and failover of client connections within the network that they are connecting. To add a listener for the EECS connections coming in on the IB network, first add a network resource for the IB network with Virtual IP addresses.
Ensure that these IP addresses are not used.
The following is an example:
# Added for Listener over IB
192.168.10.21 ssc01db01-ibvip.mycompany.com ssc01db01-ibvip
192.168.10.22 ssc01db02-ibvip.mycompany.com ssc01db02-ibvip
# /u01/app/grid/product/11.2.0.2/bin/srvctl add network -k 2 -S 192.168.10.0/255.255.255.0/bondib0
# /u01/app/grid/product/11.2.0.2/bin/crsctl stat res -t | grep net
ora.net1.network
ora.net2.network -- Output indicating new Network resource
or
# /u01/app/grid/product/11.2.0.2/bin/srvctl config network -k 2
Network exists: 2/192.168.10.0/255.255.255.0/bondib0, type static -- Output indicating Network resource on the 192.168.10.0 subnet
srvctl add vip -n ssc01db01 -A ssc01db01-ibvip/255.255.255.0/bondib0 -k 2
srvctl add vip -n ssc01db02 -A ssc01db02-ibvip/255.255.255.0/bondib0 -k 2
srvctl add listener -l LISTENER_IB -k 2 -p TCP:1522,/SDP:1522
You can either enter the full tnsnames syntax in the initialization parameter or create entries in tnsnames.ora in the $ORACLE_HOME/network/admin directory. The tnsnames.ora entries must exist in the GRID_HOME.
The following example first updates tnsnames.ora. Complete this step on each Database Domain in the cluster with the correct IP addresses for that Database Domain. LISTENER_IBREMOTE should list all other Database Domains that are in the cluster. DBM_IB should list all Database Domains in the cluster.
(DESCRIPTION = DBM = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbm) )) DBM_IB = (DESCRIPTION = (LOAD_BALANCE=on) (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db01-ibvip)(PORT = 1522)) (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db02-ibvip)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbm) )) LISTENER_IBREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db02-ibvip.mycompany.com)(PORT = 1522)) )) LISTENER_IBLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01db01-ibvip.mycompany.com)(PORT = 1522)) (ADDRESS = (PROTOCOL = SDP)(HOST = ssc01db01-ibvip.mycompany.com)(PORT = 1522)) )) LISTENER_IPLOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc0101-vip.mycompany.com)(PORT = 1521)) )) LISTENER_IPREMOTE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ssc01-scan.mycompany.com)(PORT = 1521)) ))
Connect to the database instance as sysdba.
SQLPLUS> alter system set listener_networks='((NAME=network2) (LOCAL_LISTENER=LISTENER_IBLOCAL)(REMOTE_LISTENER=LISTENER_IBREMOTE))', '((NAME=network1)(LOCAL_LISTENER=LISTENER_IPLOCAL)(REMOTE_LISTENER=LISTENER_IPREMOTE))' scope=both;
srvctl stop listener -l LISTENER_IB
srvctl start listener -l LISTENER_IB