RE: Questions re LOCAL_LISTENER & REMOTE_LISTENER

  • From: "William Wagman" <wjwagman@xxxxxxxxxxx>
  • To: "Andreas Piesk" <a.piesk@xxxxxxx>
  • Date: Mon, 19 Nov 2007 12:25:32 -0800

Andreas,

Thanks for the reply. But this is where I think I may be missing
something. As I see it the LOCAL_LISTENER parameter is an init parameter
and with a shared SPFILE it is the same on each node. How do I configure
it to point to the local node? I am probably missing something very
basic here so bear with me.

Thanks. 


Bill Wagman
Univ. of California at Davis
IET Campus Data Center
wjwagman@xxxxxxxxxxx
(530) 754-6208
-----Original Message-----
From: Andreas Piesk [mailto:a.piesk@xxxxxxx] 
Sent: Saturday, November 17, 2007 5:21 AM
To: William Wagman
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: Questions re LOCAL_LISTENER & REMOTE_LISTENER

William Wagman schrieb:
> 
> And the mirror image on node 2. This is puzzling to me as the
> tnsnames.ora listed in example 9.1 of the Real Application Clusters
> Installation guide looks like the one I currently have. I think my
lack
> of understanding has to do with how the local and remote listener
> parameters function so if someone could help me in my understanding I
> would be most grateful.

you're right, LOCAL_LISTENER on each node should point to the listener
on that node. REMOTE_LISTENER should point to all listeners on all nodes
if you want server side load balancing, otherwise don't set
REMOTE_LISTENER.

so to make your configuration right, you should setup it like this:

node1:

LOCAL_LISTENER_NODE1 =
  (ADDRESS_LIST =
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node1-vip)
      (PORT = 1521)
    )
  )
REMOTE_LISTENERS =
  (ADDRESS_LIST =
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node1-vip)
      (PORT = 1521)
    )
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node2-vip)
      (PORT = 1521)
    )
  )

LOCAL_LISTENER=LOCAL_LISTENER_NODE1
REMOTE_LISTENER=REMOTE_LISTENERS


node2:

LOCAL_LISTENER_NODE2 =
  (ADDRESS_LIST =
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node2-vip)
      (PORT = 1521)
    )
  )
REMOTE_LISTENERS =
  (ADDRESS_LIST =
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node1-vip)
      (PORT = 1521)
    )
    (ADDRESS =
      (PROTOCOL = TCP)
      (HOST = node2-vip)
      (PORT = 1521)
    )
  )

LOCAL_LISTENER=LOCAL_LISTENER_NODE2
REMOTE_LISTENER=REMOTE_LISTENERS


on a 2-node cluster your REMOTE_LISTENER can point to a single listener
but i find it easier to keep REMOTE_LISTENER identical on all nodes.

the purpose of REMOTE_LISTENER is to connect all instances with all
listeners so the instances can propagate their load balance advisories
to all listeners. if you connect to a listener, this listener uses the
advisories to decide who should service your connect. if the listener
decides its local instance(s) are least loaded and should service your
connect it passes your connect to the local instance. if the node you
connected to is overloaded, the listener can use TNS redirect to
redirect your connect a less loaded instance.


regards,
-ap
--
//www.freelists.org/webpage/oracle-l


Other related posts: