Adding a new network to RAC cluster

There are scenarios where it is required to add additional public network to a RAC cluster in order to segregate the network traffic from the default public network. In our case the requirement was to come up with a separate network which is dedicated to carry the backup traffic between the RAC servers and the enterprise backup server.
Below are the steps which were followed during the setup on Oracle 11.2 cluster (2 nodes) running on top of Solaris 10.
Before the start, make sure the new IPs are assigned in the network level and available on all nodes of the cluster. In our case below are the test IPs assigned.
 node 1 - IP --> 172.20.60.46 | VIP --> 172.20.60.146  
 node 2 - IP --> 172.20.60.47 | VIP --> 172.20.60.147  
Step 1 - Add new IP entries to host file.
 ##Backup Network  
 172.20.60.46 cbbacknode1   
 172.20.60.47 cbbacknode2  
 ##Backup VIP  
 172.20.60.146 vip-cbbacknode1   
 172.20.60.147 vip-cbbacknode2  
Step 2 - Check currently assigned networks in the cluster.
 root@cbprdb1 # export ORACLE_HOME=/oracle/11.2.0/grid  
 root@cbprdb1 # export PATH=$ORACLE_HOME/bin:$PATH  
 root@cbprdb1 # crsctl stat res -t |grep -i net  
 ora.net1.network  
 root@cbprdb1 #  
Step 3 - Add the new network and VIP on correct network adapter.(11.2 onward, as root)
 srvctl add network -k 2 -S 172.20.60.0/255.255.255.0/vnet4  
 srvctl add vip -n cbprdb1 -k 2 -A 172.20.60.146/255.255.255.0/vnet4  
 srvctl add vip -n cbprdb2 -k 2 -A 172.20.60.147/255.255.255.0/vnet4  
Step 4 - Check new network is registered on cluster.
 root@cbprdb1 # crsctl stat res -t |grep -i net  
 ora.net1.network  
 ora.net2.network  
 root@cbprdb1 # crsctl stat res -t |grep -i vip  
 ora.cbprdb1.vip  
 ora.cbprdb2.vip  
 ora.scan1.vip  
 ora.scan2.vip  
 ora.scan3.vip  
 ora.vip-cbbacknode1.vip  
 ora.vip-cbbacknode2.vip  
 root@cbprdb1 #  
Step 5 - use netca to create listener using newly created network and check listener status.
 @cbprdb1:/oracle/app[+ASM1]>srvctl config listener -a  
 Name: LISTENER  
 Network: 1, Owner: Dbadmin  
 Home: <CRS home>  
  /oracle/11.2.0/grid on node(s) cbprdb2,cbprdb1  
 End points: TCP:1535  
 Name: LISTENER_BACKUP  
 Network: 2, Owner: Dbadmin  
 Home: <CRS home>  
  /oracle/11.2.0/grid on node(s) cbprdb2,cbprdb1  
 End points: TCP:1539  
 @cbprdb1:/oracle/app[+ASM1]>  
Step 6 - Add new configuration to tnsnames.ora on node1, same should be done on node2 using the VIP of the node.
 Node 1  
 LISTENER_BACKUP =  
   (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.146)(PORT = 1539))  
   )  
 REMOTE_BACKUP =  
   (DESCRIPTION_LIST =  
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.146)(PORT = 1539)))  
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.147)(PORT = 1539)))  
   )  
 Node 2  
 LISTENER_BACKUP =  
   (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.147)(PORT = 1539))  
   )  
 REMOTE_BACKUP =  
   (DESCRIPTION_LIST =  
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.146)(PORT = 1539)))  
    (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.60.147)(PORT = 1539)))  
   )  
Step 7 - Configure listener_networks parameter accordingly. Keep the local_listener and remote_listener parameters without any change and include new network in listener_networks similar to below,
 alter system set LISTENER_NETWORKS='((NAME=network2)(LOCAL_LISTENER=LISTENER_BACKUP)(REMOTE_LISTENER=REMOTE_BACKUP))' scope=both sid='*';  
Now it is possible to create backup clients using newly created network and listener.

Comments

Popular posts from this blog

ORA-16433: The database or pluggable database must be opened in read/write

Oracle Multitenant - Create new service for PDB using DBMS_SERVICE

Wait for unread message on broadcast channel - Blocking Sessions