Go to main content

Oracle® SuperCluster M8 and SuperCluster M7 Administration Guide

Exit Print View

Updated: June 2020
 
 

Create an SDP Listener on the IB Network

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.


Note -  This example lists two Database Domains. If you have more than two Database Domains in your SuperCluster system, you must repeat Database Domain-specific lines for each Database Domain in the cluster.

Examples In this procedure use the default IB networking subnet: 192.168.28.0 / 255.255.252.0 (stor_ipmp0 / IB PKEY 8503).

  1. Edit the /etc/hosts file on each Database Domain in the cluster to add the virtual IP addresses you will use for the IB network.

    Ensure that these IP addresses are not used.

    For example:

    # Added for Listener over IB

    192.168.28.21 ssc01db01-ibvip.example.com ssc01db01-ibvip

    192.168.28.22 ssc01db02-ibvip.example.com ssc01db02-ibvip

  2. On one of the Database Domains, as the root user, create a network resource for the IB network, as in this example:

    # /u01/app/grid/product/11.2.0.2/bin/srvctl add network -k 2 -S 192.168.28.0/255.255.252.0/stor_ipmp0

  3. Validate that the network was added correctly, by running one of the following commands:

    # /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.28.0/255.255.252.0/stor_ipmp0, type static -- Output indicating Network resource on the 192.168.28.0 subnet

  4. Add the Virtual IP addresses on the network created in Step 2, for each node in the cluster.

    srvctl add vip -n ssc01db01 -A ssc01db01-ibvip/255.255.252.0/stor_ipmp0 -k 2

    srvctl add vip -n ssc01db02 -A ssc01db02-ibvip/255.255.252.0/stor_ipmp0 -k 2

  5. As the "oracle" user (who owns the grid infrastructure home), add a listener which listens on the VIP addresses created in Step 3.

    srvctl add listener -l LISTENER_IB -k 2 -p TCP:1522,/SDP:1522

  6. For each database that will accept connections from the middle tier, modify the listener_networks init parameter to enable load balancing and failover across multiple networks (Ethernet and IB).

    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.

    This 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.


    Note -  The TNSNAMES entry is only read by the database instance on startup. If you modify the entry that is referred to by any init.ora parameter (LISTENER_NETWORKS), you must restart the instance or enter an ALTER SYSTEM SET LISTENER_NETWORKS command for the modifications to take affect by the instance.
    EXA1SB1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-exa1-scan)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = exa1sb1)
        )
      )
    
    
    EXA1SB1_IB =
      (DESCRIPTION =
        (LOAD_BALANCE=on)
        (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-c0p1-d1-ibvip)(PORT = 1522))
        (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-c1p1-d1-ibvip)(PORT = 1522))
        (ADDRESS = (PROTOCOL = SDP)(HOST = etc7m7-c0p1-d1-ibvip)(PORT = 1522))
        (ADDRESS = (PROTOCOL = SDP)(HOST = etc7m7-c1p1-d1-ibvip)(PORT = 1522))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = exa1sb1)
        )
      )
    
    
    LISTENER_IPLOCAL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-c0p1-d1-vip)(PORT = 1521))
        )
      )
    
    
    LISTENER_IPREMOTE =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-exa1-scan)(PORT = 1521))
        )
      )
    
    LISTENER_IBLOCAL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-c0p1-d1-ibvip)(PORT = 1522))
          (ADDRESS = (PROTOCOL = SDP)(HOST = etc7m7-c0p1-d1-ibvip)(PORT = 1522))
        )
      )
    
    LISTENER_IBREMOTE =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = etc7m7-c1p1-d1-ibvip)(PORT = 1522))
          (ADDRESS = (PROTOCOL = SDP)(HOST = etc7m7-c1p1-d1-ibvip)(PORT = 1522))
        )
      )
  7. Modify the listener_networks init parameter.

    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;

  8. Stop and start LISTENER_IB for the modification in Step 7.

    srvctl stop listener -l LISTENER_IB

    srvctl start listener -l LISTENER_IB

Related Information