Oracle RAC 11g versión 2 admite conexiones de clientes en varias redes. Esta versión también proporciona equilibrio de carga y failover de conexiones de cliente dentro de la red a la cual se conectan. Para agregar un listener para las conexiones de EECS entrantes en la red IB, primero, agregue un recurso de red para la red IB con direcciones IP virtuales.
Asegúrese de que estas direcciones IP no estén en uso.
Por ejemplo:
# 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
o bien,
# /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
Puede introducir la sintaxis completa de tnsnames en el parámetro de inicialización o crear entradas en tnsnames.ora en el directorio $ORACLE_HOME/network/admin. Las entradas de tnsnames.ora deben existir en GRID_HOME.
En el siguiente ejemplo, primero, se actualiza tnsnames.ora. Complete este paso en cada dominio de base de datos del cluster con las direcciones IP correctas para ese dominio de base de datos. LISTENER_IBREMOTE debería mostrar todos los demás dominios de base de datos del cluster. DBM_IB debería mostrar todos los dominios de base de datos del 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)) ))
Conéctese a la instancia de base de datos como 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