适用于 Oracle 数据库的 Oracle® Solaris Cluster 数据服务指南

退出打印视图

更新时间: 2014 年 9 月
 
 

如何配置 Oracle Grid Infrastructure SCAN 侦听器

使用 Oracle Grid Infrastructure for Clusters 部署 HA for Oracle Database 数据服务时,单实例数据库的首选侦听器是单客户机访问名称 (Single Client Access Name, SCAN) 侦听器。要在 HA for Oracle Database 配置中利用 SCAN 侦听器,必须确保正确设置了单实例数据库的 local_listenerremote_listener 参数。

如果配置 SCAN 侦听器,则可以忽略本手册中后面有关创建具有 SUNW.oracle_listener 资源类型的 Oracle 数据库侦听器的说明。配置 Oracle 数据库侦听器时不需要 SCAN 侦听器资源。

有关 SCAN 侦听器的更多信息,请参见您的 Oracle Grid Infrastructure 软件版本的 Oracle Grid Infrastructure 安装指南。

  1. 以数据库用户的身份使用 SQL*Plus 登录 Oracle 数据库。
  2. 确保 local_listener 参数包含本地侦听器 IP 号和端口号。
    1. 显示 local_listener 参数设置。
      SQL> show parameters local_listener
      NAME                                 TYPE        VALUE
      ------------------------------------ -----------------------------------------
      local_listener                       string      (ADDRESS=(PROTOCOL=TCP)(HOST=node-IP-number)(PORT=port-number))
      SQL>
    2. 如果 local_listener 参数不包含本地侦听器 IP 号和端口号,请将该参数设置为空值并重新启动 Oracle 数据库。

      重新启动 Oracle 数据库时,Oracle Clusterware 将动态设置 local_listener 参数。

      SQL> alter system set local_listener='' scope=both;
      System altered.
    3. 检验 local_listener 参数设置是否正确。
      SQL> show parameters local_listener
  3. 确保 remote_listener 参数引用 SCAN 名称和端口号。
    1. 确定 remote_listener 参数是否包含 SCAN 名称和端口号。
      phys-schost$ srvctl config scan
      SCAN name: SCAN-name, Network: network-number
      …
      phys-schost$ srvctl config scan_listener
      SCAN Listener LISTENER_SCAN1 exists. Port: TCP:port-number
    2. 确定 remote_listener 参数是否包含 SCAN 名称和端口号。
      SQL> show parameter remote_listener
      
      NAME                                 TYPE        VALUE
      ------------------------------------ ----------- ------------------------------
      remote_listener                      string       SCAN-name:port-number
      SQL>
    3. 如果 remote_listener 参数不包含 SCAN 名称和端口号,请使用这些值设置该参数。
      SQL> alter system set remote_listener='SCAN-name:port-number' scope=both
    4. 检验 remote_listener 参数中的 SCAN 设置。
      SQL> show parameter remote_listener
  4. 在每个群集节点上,确保 tnsnames.ora 文件引用网络服务名称的 SCAN 名称。
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = SCAN-name)(PORT = port-number))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )