Operating System - HP-UX
1843944 Members
2624 Online
110226 Solutions
New Discussion

using oracle listener in a two nodes serviceguard's cluster

 
SOLVED
Go to solution
Feljav
Frequent Advisor

using oracle listener in a two nodes serviceguard's cluster

I am configuring a Active-Active cluster with two nodes and one package per node using serviceguard A.11.17 and HPUX 11.23.Each package contains four oracle data bases.The oracle version is oracle 9i.There is a listener per package. The cluster and the packages are configured. The problem is that when a node fail and migrate to the other node, the listener,from the fail node, can't startup in the new node because a error appears saying that the listener ia already up. The client,DBA, copied the listener's binary to create two listener processes per node. I am't sure about that. Is this the best solution? Should we create a independent package for the listener? I appreciate any help.
14 REPLIES 14
Steven E. Protter
Exalted Contributor

Re: using oracle listener in a two nodes serviceguard's cluster

Shalom,

An active-active cluster requires oracle rac.

Oracle server will not work in an active-active cluster. If you do get the two databases to come up you will soon have corrupted data. I've seen the results and its not pretty.

Oracle RAC's standard configuration tools deals with these issues.

The listener startup script is aware its clustered and checks for the presence of an already running listener and takes appropriate action.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com

Re: using oracle listener in a two nodes serviceguard's cluster

...depends on the definition of 'active/active'. If, for instance you look at the microsoft definition you will see that active/active means ' a cluster with seperate packages (apps) running on both nodes', whereas the oracle definition is that of once package (app/database) running across several nodes simultaneously.

You don't need your listener to run in a seperate package, you do however need to make sure that you are a) referencing the correct listener.ora for the package (some people use the TNS_ADMIN env variable to point at a copy of listener.ora on the shared disk) and b) make sure that the two listeners are using different TCP ports - they can't both use 1521 - if you change one you will also have to update tnsnames.ora on the servers and any clients.

HTH

Duncan

I am an HPE Employee
Accept or Kudo
Jeff Schussele
Honored Contributor

Re: using oracle listener in a two nodes serviceguard's cluster

I respectfully disagree with both my esteemed colleauges.
You CAN run multiple DBs - WITH listeners - w/o using RAC.
AND you really should run multiple listeners when you're running multiple SIDs.
All you need to do is run EACH listener on a separate port.
For instance run SID1 on 1521, run SID2 on 1522, etc.
Then all that needs to be done is the tnsnames.ora file just needs to codify that.
It's really that simple.
We do it all the time here & we're a BIG shop.

HTH,
Jeff
PERSEVERANCE -- Remember, whatever does not kill you only makes you stronger!
TwoProc
Honored Contributor

Re: using oracle listener in a two nodes serviceguard's cluster

If you're copying the binaries over, then you are also copying over your listener.ora, tnsnames.ora, sqlnet.ora files, right? Well, do they refer to a virtual clustered ipaddress/hostname or to the real actual hostname? If they refer to the real hostnames (or IP addresses) instead of the virtual it can't come up.

if this is your problem, one solution is to create a set of the above that the package puts in place during the package move that have the new nodes IP address(hostname) in the above files.

Or...

Have all of the names of services in the above named files reference the virtual IP address.

We are the people our parents warned us about --Jimmy Buffett
Fabien GUTIERREZ
Frequent Advisor

Re: using oracle listener in a two nodes serviceguard's cluster

you can create as many listener as you need per node. when your package fail, you need to stop the listener switch your package to the other node with the above IP. the listener must not use the name of the node to connect but a floating ip. this way you ll have a fully redundant configuration
Feljav
Frequent Advisor

Re: using oracle listener in a two nodes serviceguard's cluster

Thanks for your answers. I don't know much about oracle scripts. Each cluster's packages are configured with virtual ip addresses. I forgot to mention before that we used HP Serviceguard Oracle ToolKit B.03.00. The toolkit configuration file (haoracle.conf) in the first and second node are:

First Node:

ORACLE_HOME=/lvolora12/app/product/9.2.0.6

ORACLE_ADMIN=oraclust

SID_NAME=STUDUM

LISTENER=yes

LISTENER_NAME=HP1N0_LISTENER

LISTENER_PASS=

PFILE=${ORACLE_HOME}/dbs/init${SID_NAME}.ora

Second Node:

ORACLE_HOME=/lvolora32/app/product/9.2.0.6

ORACLE_ADMIN=oraclust

SID_NAME=JPOINT

LISTENER=yes

LISTENER_NAME=HP2N0_LISTENER

LISTENER_PASS=

PFILE=${ORACLE_HOME}/dbs/init${SID_NAME}.ora


One data base per node is the responsable for startup the listener.

I want to say you that I am not the Oracle DBA. My parthner and I configured only serviceguard. We want to know the best practice to manage the listener with serviceguard. Is posible run two diferent listeners in the same node when occurs a failover? Any additional comments and help will be appreciate.
Marcel Boogert_1
Trusted Contributor

Re: using oracle listener in a two nodes serviceguard's cluster

Hi there,

You should create 2 oracle users on both cluster nodes. For example on node 1 create user oracle1 and on node 2 user oracle2. Make sure the UID are the same.

Now install oracle on node 1 with user oracle1 in package1 and install oracle on node 2 with user oracle2.

Make sure SG brings down the VG's your oracle installation uses and moves them towards the other node after failover.

In this way you can run both oracle installations(including the listeners) on the same node.

If you've got any more questions let me now.

Regards,
MB.

Re: using oracle listener in a two nodes serviceguard's cluster

Jeff,

Can't see why your diagreeing with me, as I actually said pretty much the same as you (in not so many words)...

HTH

Duncan

I am an HPE Employee
Accept or Kudo
Kevin Wright
Honored Contributor
Solution

Re: using oracle listener in a two nodes serviceguard's cluster

Stephen, an active-active cluster's definition does not mean that both nodes will be accessing the same database simultaneously, it means that each node is actively running a package.

There is no reason for Oracle RAC for an active-active cluster, just ensure each DB has different ports for each listener as has been mentioned.
Elif Gius
Valued Contributor

Re: using oracle listener in a two nodes serviceguard's cluster


Hi,
Maybe your DBA should define for each Listener a different Listener Port.
So even if the package would switch the listener will come up because each listener uses a different listener port.
Feljav
Frequent Advisor

Re: using oracle listener in a two nodes serviceguard's cluster

Thank you for all your help!

Somebody has some evidence or document to support all this information? (about the use of two listener)

My customer ask me for documentation.

Any help
Vladimir Fabecic
Honored Contributor

Re: using oracle listener in a two nodes serviceguard's cluster

How about this idea:
On node which is running package, you add ip alias address. Then you start listener on ip alias address, not host address.
In that case users do not care which node runs package (database and listener).
You can also use this for each database instance (and listener).
In vino veritas, in VMS cluster
Feljav
Frequent Advisor

Re: using oracle listener in a two nodes serviceguard's cluster

Somebody knows some Link where I can find more written information.
I don't find anything to convince my client. I found only that links:

http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/rac.920/a96597/pshavdtl.htm

http://www.freelists.org/archives/oracle-l/03-2005/msg00759.html

Any other suggestion.
Kevin Wright
Honored Contributor

Re: using oracle listener in a two nodes serviceguard's cluster