Unless you actually start the separate listeners, they will not do you any good. Each listener must be configured to listen to different ports and then started explicitly, as follows:
If desirable to run separate listeners, configure your listener.ora as follows:
SID_LIST_LISTENER_PRODDB01 = (SID_LIST = (SID_DESC = (SID_NAME = PRODDB01) (ORACLE_HOME = /u01/oracle/product/11202) ) ) LISTENER_PRODDB01 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT =1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER_PRODDB02 = (SID_LIST = (SID_DESC = (SID_NAME = PRODDB02) (ORACLE_HOME = /u01/oracle/product/11202) ) ) LISTENER_PRODDB02 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT=1526)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1526)) ) )
Then start each listener:
LSNRCTL> set current_listener LISTENER_PRODDB01 Current Listener is LISTENER_PRODDB01 LSNRCTL> start LSNRCTL> set current_listener LISTENER_PRODDB02 Current Listener is LISTENER_PRODDB01 LSNRCTL> startAfter having started all LISTENERS, check that they are running (on unix):
ps -ef | grep LISTEN|grep -v grep oracle 7864350 1 0 15:41:47 - 0:12 /u01/oracle/product/11203/bin/tnslsnr LISTENER_PRODDB01 -inherit oracle 7864350 1 0 15:41:47 - 0:12 /u01/oracle/product/11203/bin/tnslsnr LISTENER_PRODDB02 -inherit
If you only specify one - 1 - listener per server, you can set it up to listen for incoming Connections for multiple databases, as specified in the SID_LIST:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME =PRODDB01) (ORACLE_HOME = /u01/oracle/product/11202) ) (SID_DESC = (SID_NAME =PRODDB02) (ORACLE_HOME = /u01/oracle/product/11202) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
I prefer using a $TNS_ADMIN/listener.ora file consequently. It makes it easier to configure the listener later.
I recommomed the following lines to be added to 11gR2 listeners:
DIAG_ADR_ENABLED=on <-- Use the ADR as base for all future logging and tracing of the listener ADR_BASE_LISTENER = /u01/oracle <-- The value of Your $ORACLE_BASE variable goes here LOGGING_LISTENER=off <-- Turn logging on only if needed TRACE_LEVEL_LISTENER=off <-- Turn tracing on only if needed