1751847 Members
5082 Online
108782 Solutions
New Discussion юеВ

Re: dual listeners

 
David Bellamy
Respected Contributor

dual listeners

i'm having trouble implementing three listeners(3 instance). any pointers
thx
6 REPLIES 6
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
New Member

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
New Member

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.