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
No comments:
Post a Comment