How To Setup Listener For PDBS In Multitenant Database.

If you wish to setup listener for a particular PDB in the multitenant database, then follow as below.

Create a listener and start it.

LISTENER_DBATEST =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbatest-host)(PORT = 1573))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1573))
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_PDB_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_PDB_LISTENER=SUBNET # line added by Agent


lsnrctl start LISTENER_DBATEST

Now connect to the PDB for which you are setting up listener.

SQL> alter session set container=PDB1;

Session altered.

SQL> show con_name

CON_NAME
--------
PDB1

Set listener_networks *:

use the listener port and the hosname

SQL> alter system set listener_networks='(( NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbatest-host)(PORT =1573)))))' scope=both;

System altered.

SQL> alter system register;

System altered.

Check the status of the listener:

lsnrctl status LISTENER_DBATEST


LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 26-APR-2017 11:36:54

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbatest-host)(PORT=1573)))
STATUS of the LISTENER
------------------------
Alias LISTENER_DBATEST
Version TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
Start Date 21-FEB-2017 11:55:51
Uptime 63 days 23 hr. 41 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/app/oracle/product/12.1.0/dbtest/network/admin/listener.ora
Listener Log File /oracle/app/oracle/diag/tnslsnr/dbatest-host/dbatest/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbatest-host)(PORT=1573)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1573)))
Services Summary...
Service "pdb1" has 1 instance(s).
Instance "DBATEST", status READY, has 2 handler(s) for this service...
The command completed successfully

lsnrctl service LISTENER_DBATEST

LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 26-APR-2017 12:33:48

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbatest-host)(PORT=1573)))
Services Summary...
Service "pdb1" has 1 instance(s).
Instance "DBATEST", status READY, has 2 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=dbatest-host)(PORT=63970))
"DEDICATED" established:12 refused:0 state:ready
LOCAL SERVER
The command completed successfully


ADD THE BELOW TNS ENTRY:

PDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbatest-host)(PORT = 1573))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)
)
)

Test the connectivity using tns service:

sqlplus sys/oracle@PDB1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Apr 26 12:36:59 2017

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


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics, Real Application Testing
and Unified Auditing options