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.