Simpler Navigation for Servers and Operating Systems
Completed: a much simpler Servers and Operating Systems section of the Community. We combined many of the older boards, so you won't have to click through so many levels to get at the information you need. Check the consolidated boards here as many sub-forums are now single boards.
cancel
Showing results for 
Search instead for 
Did you mean: 

dual listeners

David Bellamy
Respected Contributor

dual listeners

i'm having trouble implementing three listeners(3 instance). any pointers
thx
6 REPLIES
John Eaton
Frequent Advisor

Re: dual listeners

I'm not a DBA, but I beat my DBA's into doing this in a MC/SG clustered system.
For Oracle, the different database listeners are defined in the listener.ora file, EACH WITH IT'S OWN PORT. For example: abd01 is port 1522, and efg01 is port 1523.
You want to avoid using port 1521. Leave this for the default listener.
Hope this helps.
Tom Danzig
Honored Contributor

Re: dual listeners

Be sure to name each listener something different. The default is "LISTENER".

We have 5 running on a V class without issue.
Geetam
Frequent Advisor

Re: dual listeners

Are you sure you want three listeners (you are talking about Oracle Listeners, I assume)

One listener can listen for requests for more then one database.
Vladislav Demidov
Honored Contributor

Re: dual listeners

Create listener configuration file in $ORACLE_HOME/network/admin/listener.ora and specify in that file all instances for the listener.
Example of listener.ora
LISTENER =
(ADDRESS_LIST =
(ADDRESS= (PROTOCOL= IPC)(KEY= my_openview.aaa.com))
(ADDRESS= (PROTOCOL= IPC)(KEY= openview))
(ADDRESS= (PROTOCOL= IPC)(KEY= my_test.aaa.com))
(ADDRESS= (PROTOCOL= IPC)(KEY= test))
(ADDRESS= (PROTOCOL= TCP)(Host= my)(Port= 1527)
(COMMUNITY = TCP.aaa.com))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= my_openview.aaa.com)
(ORACLE_HOME= /app/oracle/product/7.3.4)
(SID_NAME = openview)
(PRESPAWN_MAX = 0)
)
(SID_DESC =
(GLOBAL_DBNAME= my_test.aaa.com)
(ORACLE_HOME= /app/oracle/product/7.3.4)
(SID_NAME = test)
(PRESPAWN_MAX = 0)
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 10
TRACE_LEVEL_LISTENER = OFF
Dan Peters
Occasional Visitor

Re: dual listeners

Although you can implement only one listener for multiple database, if you have sufficient load, it is warranted to create multiples.
Note that it is a good idea to instantiate a listener for each version of the database that you are running.
IE: we have 4 Instances of 7.3.4, and two of 8.1.5, so we are running two listeners (LISTENER and LISTENER8).
The oracleSID will determine which listener we can work with.
If we use a 7.3.4 environ, then lsnrctl will start with the LISTENER set as current.
If we want to modify the LISTENER8, then first, change the SID to one of the 8.1.5 DB's, then start lsnrctl. Use the command "set current_listener LISTENER8" to change the current listener, then you can issue the normal commands, like start, status, etc.
Dan Peters
Occasional Visitor

Re: dual listeners

A couple additions to previous posts:
No real need to multiple listeners unless:
Using more than one version on same server
Very heavy user load.
Ie: we use 4x 7.3.4 Instances, and 2x 8.1.5
There are two listeners (LISTENER and LISTENER8). To start/modify LISTENER, change the OracleSID to one of the 7.3.4 instances, and run lsnrctl. This will start the ctl program with LISTENER set as the current listener.
To modify LISTENER8, change SID to one of the 8.1.5 instances, run lsnrctl then the following command:
set current_listener LISTENER8
This will allow you to start/stop/status the other listener.