oracle: local_listener,remote_listener,listener_networks参数

本文介绍了Oracle数据库中local_listener和remote_listener参数的使用方法,并详细解释了listener_networks参数的作用及配置过程。通过实例展示了如何在不同服务器间配置监听,以及如何使新监听自动注册服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • local_listener参数:

当oracle的本地监听为非默认情况时,会用到local_listener参数。

  • remote_listener参数:

而当监听和实例本身不在同一台服务器上时,remote_listener参数就会起作用了。

例如:

192.168.2.30为数据库服务器,没有配监听。编辑tnsnames.ora和设置remote_listener参数:

[oracle@test1 admin]$ cat tnsnames.ora
list1522 = 
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1522))
   )
[oracle@test1 admin]$ sqlplus  / as sysdba
SQL> alter system set remote_listener=list1522;

System altered.

SQL> exit 

192.168.2.50为单独的监听服务器:

[oracle@rac10g01 ~]$ lsnrctl status listener1522

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-JUN-2018 15:05:09

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac10g01.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER1522
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                11-JUN-2018 14:59:33
Uptime                    0 days 0 hr. 5 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/11203/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/rac10g01/listener1522/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac10g01.localdomain)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522)))
Services Summary...
Service "orcl11r2" has 1 instance(s).
  Instance "orcl11r2", status READY, has 1 handler(s) for this service...
Service "orcl11r2_s" has 1 instance(s).
  Instance "orcl11r2", status READY, has 2 handler(s) for this service...
The command completed successfully

在192.168.2.31上客户端登陆测试:

[oracle@test2 admin]$ tnsping orcl11r2_s

TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 11-JUN-2018 15:04:31

Copyright (c) 1997, 2011, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1522)) (CONNECT_DATA = (SERVER = shared) (SERVICE_NAME = orcl11r2_s)))
OK (0 msec)
[oracle@test2 admin]$ sqlplus test/test@orcl11r2_s

SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 11 15:04:43 2018

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

这种数据库实例和监听不在同一台机器上的情况并不多见。最常见的用法是利用remote_listener参数对scan的listener进行远程注册。

  • listener_networks参数:

当rac加入额外的监听时,一般会设置此参数。

例如11g的rac环境,新加入个192.168.4.0网段,在此网段上建立端口为1522的新监听。

#vip2为新加入的网络

[grid@test2 ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.30  test1  test1.localdomain

192.168.2.31  test2  test2.localdomain
192.168.2.32  test3  test3.localdomain
192.168.2.33  test2-vip test2-vip.localdomain
192.168.2.34  test3-vip test3-vip.localdomain
192.168.3.31  test2-priv test2-priv.localdomain
192.168.3.32  test3-priv test3-priv.localdomain

#vip 2
192.168.4.31  test22  test22.localdomain
192.168.4.32  test33  test33.localdomain

192.168.4.33  test2-vip2 test2-vip2.localdomain
192.168.4.34  test3-vip2 test3-vip2.localdomain

#scan
192.168.2.35  rac11g-scan  rac11g-scan.localdomain

network 2为新的网络资源:

[grid@test2 ~]$ srvctl config network
Network exists: 1/192.168.2.0/255.255.255.0/ens32, type static
Network exists: 2/192.168.4.0/255.255.255.0/ens34, type static

当新的1522监听建立后,是没有任何服务注册进来的。这时就需要设置listener_networks参数了:

[oracle@test2 ~]$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 11 15:32:23 2018

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show parameter listener_networks

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
listener_networks             string     ((NAME=network1)(LOCAL_LISTENE
                         R=listener_net1)(REMOTE_LISTEN
                         ER=rac11g-scan:1521)), ((NAME=
                         network2)(LOCAL_LISTENER=liste
                         ner_net2)(REMOTE_LISTENER=remo
                         te_net2))

此时看监听的状态,已经有新的服务自动注册进来了,这时,新的网段的vip就能对外提供监听服务了。

[grid@test2 ~]$ lsnrctl status listener1522

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 11-JUN-2018 15:34:00

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER1522
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                11-JUN-2018 09:42:59
Uptime                    0 days 5 hr. 51 min. 1 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/11203/grid/network/admin/listener.ora
Listener Log File         /u01/app/11203/grid/log/diag/tnslsnr/test2/listener1522/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.33)(PORT=1522)))
Services Summary...
Service "rac11g" has 2 instance(s).
  Instance "rac11g1", status READY, has 2 handler(s) for this service...
  Instance "rac11g2", status READY, has 1 handler(s) for this service...
The command completed successfully



<think>好的,我需要帮助用户解决Oracleremote_listener缺少SCAN IP配置的问题。首先,我要回忆一下Oracle RAC相关的知识,特别是关于local_listenerremote_listener的作用。根据用户提供的引用内容,remote_listener参数用于将实例注册到SCAN监听器,而SCAN监听器通常用于客户端连接,实现负载均衡和高可用性。 用户的问题是没有配置SCAN IP到remote_listener,导致服务无法正确注册到SCAN监听器。根据引用[4],修改remote_listener参数的正确方法是使用SCAN名称和端口,比如'raclhr-11gR2-scan:1521'。此外,引用[5]提到,如果没有设置local_listener,PMON进程默认注册到本地节点的1521端口,但可能需要显式配置以确保正确性。 接下来,我需要整理配置步骤。首先检查当前的remote_listener设置,确认是否已经包含SCAN名称或IP。如果没有,使用ALTER SYSTEM命令修改参数,指定SCAN名称和端口。同时,确保SCAN名称在DNS或GNS中正确解析,并且相关监听器已启动。 可能还需要验证local_listener的配置是否正确,因为它影响本地实例注册。如果local_listener没有正确指向本地节点的VIP,也可能导致问题。此外,重启监听器和实例可能是必要的,使配置生效。 最后,生成相关问题时要考虑用户可能遇到的其它配置问题,比如参数区别、验证方法、常见错误等。确保问题覆盖用户可能进一步探索的方向。</think>### 如何配置 Oracle remote_listener 使用 SCAN IP? #### 1. **确认当前配置状态** - 查看当前 `remote_listener` 参数值: ```sql SHOW PARAMETER remote_listener; ``` 若值为空或未指向 SCAN,则需修改[^5]。 #### 2. **配置 remote_listener 参数** - 使用 SCAN 名称(推荐)或 SCAN IP 进行配置: ```sql ALTER SYSTEM SET remote_listener = '<SCAN_NAME>:<PORT>' SCOPE=BOTH SID='*'; ``` 示例(假设 SCAN 名称为 `scan-cluster1`,端口为默认 1521): ```sql ALTER SYSTEM SET remote_listener = 'scan-cluster1:1521' SCOPE=BOTH SID='*'; ``` - **说明**:SCAN 名称需在 DNS 或 GNS 中解析为 SCAN VIP 地址[^4]。 #### 3. **验证 SCAN 解析** - 检查 SCAN 名称是否能解析为正确的 IP: ```bash nslookup <SCAN_NAME> ``` 需返回 3 个 SCAN VIP(Oracle RAC 标准配置)。 #### 4. **重启监听服务(可选)** - 若修改后未生效,重启监听器: ```bash lsnrctl stop lsnrctl start ``` #### 5. **验证服务注册状态** - 查看 SCAN 监听器是否成功注册实例: ```bash lsnrctl status <SCAN_LISTENER_NAME> ``` 输出应包含所有 RAC 实例的服务信息[^3]。 --- ### **关键配置区别** | 参数 | 作用 | 典型配置值 | |------------------|--------------------------------------------------------------------|------------------------------| | `local_listener` | 注册实例到本地节点监听器(VIP) | 本地节点 VIP:1521 | | `remote_listener`| 注册实例到 SCAN 监听器,实现跨节点负载均衡 | SCAN 名称:1521 | --- ### **注意事项** 1. **SCAN 名称必须可解析**:若使用 SCAN IP 直接配置,需确保集群环境允许静态解析(不推荐,违背 SCAN 设计初衷)[^1]。 2. **参数作用范围**:使用 `SCOPE=BOTH` 确保参数立即生效且持久化。 3. **监听器网络配置**:检查 `listener_networks` 参数是否限制监听范围,确保 SCAN 监听器可跨节点通信[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值