Oracle 单一主机多个实例多个监听器配置要点
1. 一台服务器主机, 有多个实例, 如: TSDB/ORCL; 又需要配置多个监听器 2. 需要指定不同的LISTENER端口 3.pmon只会动态注册port等于1521的监听器, 其它端口则pmon不能动态注册listener, 要想让pmon动态注册listener, 需要设置local_listener参数
[oracle@12c01 admin]$ cat listener.ora
ANDYCDB = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
ANDYCDB_TEST = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1522)) ) )
[oracle@12c01 admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools.
ANDYCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = andycdb) ) )
LISTENER_ANDYCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521))
PDB01 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb01) ) )
LISTENER_PDB01 = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1521)
LISTENER_TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1522)) )
################# lsnrctl操作: LSNRCTL> set current_listener ANDYCDB_TEST Current Listener is ANDYCDB_TEST
LSNRCTL> start Starting /home/oracle/app/oracle/product/12.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production System parameter file is /home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora Log messages written to /home/oracle/app/oracle/diag/tnslsnr/12c01/andycdb_test/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=12c01)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias ANDYCDB_TEST Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 10-APR-2018 21:59:17 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora Listener Log File /home/oracle/app/oracle/diag/tnslsnr/12c01/andycdb_test/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1522))) The listener supports no services
The command completed successfully
LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=12c01)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias ANDYCDB_TEST Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 10-APR-2018 21:59:17 Uptime 0 days 0 hr. 1 min. 26 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora Listener Log File /home/oracle/app/oracle/diag/tnslsnr/12c01/andycdb_test/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1522))) The listener supports no services The command completed successfully
-- 设置一个监听端口 SQL> alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1522))'; System altered.
[oracle@12c01 admin]$ lsnrctl status andycdb_test
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 10-APR-2018 22:38:32
Copyright (c) 1991, 2016, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=12c01)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias ANDYCDB_TEST Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production Start Date 10-APR-2018 21:59:17 Uptime 0 days 0 hr. 39 min. 16 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/oracle/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora Listener Log File /home/oracle/app/oracle/diag/tnslsnr/12c01/andycdb_test/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1522))) Services Summary... Service "4f44590eb7b74390e0531018db0a1976" has 1 instance(s). Instance "andycdb", status READY, has 1 handler(s) for this service... Service "andycdb" has 1 instance(s). Instance "andycdb", status READY, has 1 handler(s) for this service... Service "andycdbXDB" has 1 instance(s). Instance "andycdb", status READY, has 1 handler(s) for this service... Service "pdb01" has 1 instance(s). Instance "andycdb", status READY, has 1 handler(s) for this service... The command completed successfully
-- 设置多个监听端口 SQL> alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 12c01)(PORT = 1522)),(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=12c01)(PORT=1521)))'; System altered.