How to Define PDB Listeners With Different Ports In A Multitenant Setup Goal This Note will discuss the necessary steps to create and configure listeners for a Pluggable Database (PDB) in a Multitenant environment. Solution 1. Using netca create a 2nd listener on a unique port This creates a listener.ora file in the ?/network/admin directory similar to: PDB_LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = test)) (ADDRESS = (PROTOCOL = TCP)(HOST = host.us.oracle.com)(PORT = 1524)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1524)) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_PDB_LISTENER=ON # line added by Agent VALID_NODE_CHECKING_REGISTRATION_PDB_LISTENER=SUBNET # line added by Agent 2. Within the PDB issue the following statement: alter system set listener_networks='(( NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host.us.oracle.com)(PORT=1524)))))' scope=spfile; Remarks: - use scope=memory for testing only - LOCAL_LISTENER and REMOTE_LISTENER parameters are not PDB modifiable. 3. modify the PDB service definition in tnsnames.ora to point to the correct port PDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host.us.oracle.com)(PORT = 1524)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1) ) ) 4. The LREG process will automatically register the service with the listener after executing the command from section 2. Connections and lsnrctl service/status pdb_listener output are all correct for the connection. [oracle@host admin]$ lsnrctl service pdb_listener LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 01-DEC-2014 13:18:01 Copyright (c) 1991, 2014, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=test))) Services Summary... Service "pdb1" has 1 instance(s). Instance "CDB1", status READY, has 2 handler(s) for this service... Handler(s): "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER <machine: host.us.oracle.com, pid: 35460> (ADDRESS=(PROTOCOL=tcp)(HOST=host.us.oracle.com)(PORT=24804)) "DEDICATED" established:2 refused:0 state:ready LOCAL SERVER The command completed successfully [oracle@host admin]$ lsnrctl status pdb_listener LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 01-DEC-2014 13:27:59 Copyright (c) 1991, 2014, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=test))) STATUS of the LISTENER ------------------------ Alias PDB_LISTENER Version TNSLSNR for Linux: Version 12.1.0.2.0 - Production Start Date 01-DEC-2014 12:41:36 Uptime 0 days 0 hr. 46 min. 24 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/12.1.0.2/dbhome/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/host/pdb_listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=test))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host.us.oracle.com)(PORT=1524))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1524))) Services Summary... Service "pdb1" has 1 instance(s). Instance "CDB1", status READY, has 2 handler(s) for this service... The command completed successfully