Local_listener以及remote_listener参数
1.Local_listener:
该参数指定了数据库PMON进程需要将数据库实例注册到哪个端口,如果没有设置这个参数,PMON进程默认将数据库的服务注册到本地节点的1521端口。
SQL> show parameter local_listener;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.199.157)(PORT=1521))
2.remote_listener:
该参数指定了除了本地监听程序以外,PMON需要把本地实例的服务注册到何位置
例如:在RAC系统中这个参数,意为将本地实例的数据库服务注册到集群其他节点的监听程序或SCAN监听程序上。
SQL> show parameter remote_listener;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string rac-scan:1521
根据以上的设置,PMON会将本地实例的服务注册到SCAN-rac的1521端口。
其中SCAN-rac是一个可以通过DNS或/etc/hosts文件解析的名称。
实际场景
SCAN监听器正常,实例正常注册:
[grid@rac1 ~]$ lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-DEC-2020 14:49:22
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias LISTENER_SCAN1
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-NOV-2020 12:29:41
Uptime 12 days 2 hr. 19 min. 40 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/grid/crs_1/network/admin/listener.ora
Listener Log File /oracle/gridbase/diag/tnslsnr/rac1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.238.82)(PORT=1521)))
Services Summary...
Service "ora19c" has 2 instance(s).
Instance "ora19c1", status READY, has 1 handler(s) for this service...
Instance "ora19c2", status READY, has 1 handler(s) for this service...
Service "ora19cXDB" has 2 instance(s).
Instance "ora19c1", status READY, has 1 handler(s) for this service...
Instance "ora19c2", status READY, has 1 handler(s) for this service...
The command completed successfully
VIP监听器异常,数据库实例无法注册:
[grid@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-DEC-2020 14:48:57
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-NOV-2020 12:19:21
Uptime 12 days 2 hr. 29 min. 36 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/grid/crs_1/network/admin/listener.ora
Listener Log File /oracle/gridbase/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.238.72)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.238.70)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OCRVT" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@rac1 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.238.72 rac1
192.168.238.73 rac2
192.168.238.70 rac1-vip
192.168.238.71 rac2-vip
172.16.16.1 rac1-pri
172.16.16.2 rac2-pri
192.168.238.82 rac-scan
查询local_listener以及remote_listener参数
SQL> show parameter remote
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode string TIMESTAMP
remote_listener string rac-scan:1521
remote_login_passwordfile string EXCLUSIVE
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE
remote_recovery_file_dest string
result_cache_remote_expiration integer 0
SQL> show parameter local
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (ADDRESS=(PROTOCOL=TCP)(192.16
8.238.74)(PORT=1521))
parallel_force_local boolean FALSE
将该参数置空,默认向1521端口注册
SQL> alter system set local_listener='' scope=both sid='*';
System altered.
SQL> alter system register;
System altered.
再次查询VIP本地监听器正常
[oracle@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 02-DEC-2020 14:51:05
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-NOV-2020 12:19:21
Uptime 12 days 2 hr. 31 min. 44 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/grid/crs_1/network/admin/listener.ora
Listener Log File /oracle/gridbase/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.238.72)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.238.70)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OCRVT" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "ora19c" has 1 instance(s).
Instance "ora19c1", status READY, has 1 handler(s) for this service...
Service "ora19cXDB" has 1 instance(s).
Instance "ora19c1", status READY, has 1 handler(s) for this service...
The command completed successfully