Go to main content

Oracle® SuperCluster M7 系列管理指南

退出打印视图

更新时间: 2015 年 12 月
 
 

在 IB 网络上创建 SDP 侦听器

Oracle RAC 11g 发行版 2 支持在多个网络之间建立客户机连接。该发行版还在将要建立连接的网络中提供了客户机连接的负载平衡和故障转移。要为 IB 网络中接入的 EECS 连接添加侦听器,请首先为 IB 网络添加网络资源以及虚拟 IP 地址。


注 -  本示例列出了两个数据库域。如果您的 SuperCluster M7 中有两个以上数据库域,则必须对群集中的每个数据库域重复特定于数据库域的行。
  1. 在群集中的每个数据库域上编辑 /etc/hosts 文件,以添加要用于 IB 网络的虚拟 IP 地址。

    确保未使用这些 IP 地址。

    例如:

    # 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

  2. 在其中一个数据库域上,以 root 用户身份为 IB 网络创建一个网络资源,如以下示例所示:

    # /u01/app/grid/product/11.2.0.2/bin/srvctl add network -k 2 -S 192.168.10.0/255.255.255.0/bondib0

  3. 通过运行以下命令之一验证网络是否已正确添加:

    # /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

    或者

    # /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

  4. 针对群集中的每个节点,在Step 2 中创建的网络中添加虚拟 IP 地址。

    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

  5. 以 "oracle" 用户(网格基础结构主目录的所有者)的身份添加用于侦听Step 3 中创建的 VIP 地址的侦听器。

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

  6. 针对将接受来自中间层的连接的每个数据库,修改 listener_networks init 参数以允许跨多个网络(以太网和 IB)进行负载平衡和故障转移。

    在初始化参数中输入完整的 tnsnames 语法,或在 $ORACLE_HOME/network/admin 目录的 tnsnames.ora 中创建条目。tnsnames.ora 条目必须存在于 GRID_HOME 中。

    以下示例首先更新 tnsnames.ora。使用该数据库域的正确 IP 地址对群集中的每个数据库域完成此步骤。LISTENER_IBREMOTE 应该列出位于该群集中的所有其他数据库域。DBM_IB 应该列出该群集中的所有数据库域。


    注 -  TNSNAMES 条目仅在启动时由数据库实例读取。如果您修改任何 init.ora 参数 (LISTENER_NETWORKS) 引用的条目,则必须重新启动实例或输入 ALTER SYSTEM SET LISTENER_NETWORKS 命令,以便修改在实例上生效。
    (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))
    ))
    
  7. 修改 listener_networks init 参数。

    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. Step 7 中的修改停止并启动 LISTENER_IB

    srvctl stop listener -l LISTENER_IB

    srvctl start listener -l LISTENER_IB

相关信息