HPE 9000 and HPE e3000 Servers
Showing results for 
Search instead for 
Did you mean: 




Dear all

As shown in the figure i have two HP rp8400 servers. each one is partioned into two partion (hardware partion) . we have three databases.

1. Database2 clustered between two partion from THE TWO servers by using RAC.
2. Database1 is on server1.
3. Database3 is on server2.

each database has production and test enviroment.
each server has 8 CPU and 4 HDD (36GB) , 2 HDD for each partion and the OS installed and mirrored between the two HDD in each partion.

The servers is connected to SAN through Fiber switches.

My questions as show in the figure is it possible to have this solution inorder to achieve the following? :

1. Database high avalaibilty takeing into considration that the databases will be stored into SAN array

2. In case Database1 partion0 or server1 is down or any failure is it possible that server2 or partion1(DB3) will take over by using failover policy inorder to handle DB1?

3. In case Database3 partion1 or server2 is down or any failure is it possible that DB1 will handle DB3 by using failover policy?

4. Can i use the RAC for the rest of Databases DB1 and DB3 ?

5. Can i acheive the NSPF(NO SINGLE POINT OF FAILIURE) as show in the same figure?

And if you have any suggestions
I appreciate it.

Thank you
Wim Rombauts
Honored Contributor


Hello David, I cannot see the picture you attached, but I think I can say some usefull things.

When one database goes down, you cannot use a second database to serve the datafiles from the first database. That is just impossible.

What you can do, however, is to have a DB1 instance also configured on server2 (ini-files, listener.ora, ...), but not start it. On server1, you need to have all datafiles, redo logs, control files ... on a separate volume group (vgdb1 for instance).
When server 1 fails, or just the database on it fails, you have to umount all filesystems on vgdb1 and deactivate the volumegroup.
On server 2, you can activate that volumegroup and mount all filesystems. You have now the database available on server2 and you can start an instance to serve this DB1 on server2.

On the client, you need to add both servers as servers for DB1. This will make the cliet first try to connect to server1, and if that fails, it will try to connect to server2.

You can indeed switch to RAC for DB1 and DB3 and have them available on both servers, but you will probably have to switch from filesystem datafiles to raw datfiles.

The only advantage of RAC in this case, is that the second instance is already available when the first one fails, and clients can immediately failover to the second instance.
Without RAC, clients loose their connection and have to wait until the database files are available on server2 and the database is stared (and if necessary recovered) on server2.


Thank you alot wim

Here i forward the Drawing again could u please check it.

Best Regards
Wim Rombauts
Honored Contributor


hello David,

I can see your drawing now.

You have a few options :

1) Since your are (probably) running ServiceGuard already on server1/par1 and server2/par0, you can include the other partitions in the cluster, or build a second cluster with the other two partitions. Then you can make a package of DB1 and one of DB3. In case of failure of one of the databases, you can use SerivceGuard to restart them automatically on the same partition and if necessary failover to the another server/partition.

2) You can use Oracle RAC to mimic a failover, but then you need serviceguard anyway (I think).
In OracleRAC you can define one instance as primary (allways running) and a second instance as secondary, with the number of "maximum running instances" set to 1. In this case, if DB1 on Server1/par0 goes down, the secondary instance on Server2/par1 kicks into action, recovers the datbase and further continues serving the database.

3) Or you can go oracle RAC all the way and define DB1 as well as DB3 on both server1/par0 and server2/par1 so that both databases are available on both systems (similar configuration as for DB2). Failure of one instance should not give a significant interruption of service.

It all depends on what you can or want to spend. Oracle RAC licenses are not cheap.

The cheapest way is to use option 1 and bypass ServiceGuard by writing some monitoring script yourself to check from server1/par0 if the database on server2/par1 is still available, but writing such a script that you can count on, can be tricky.