ORACLE_HOME – to share or not to share

When setting up a RAC system, one of the questions that tend to come up is whether to have one ORACLE_HOME per node on local disk, or to have one ORACLE_HOME for both instances on the shared storage. These approaches are sometimes called “private home” vs. “shared home”.

Oracle have an amazing white paper on the topic, which I’ve been reading for the last two days:

We have both types of systems here (because we have two teams of DBAs with somewhat conflicting procedures), and I worked on both. As with many questions, there are pros and cons to each approach, and you decide based on your priorities. The paper (highly recommended!) covers almost all the pros and cons in lots of details. However, I still want to give here a short summary, based on my experience.

Why use private home?

  1. Easier rolling upgrades. If you need to patch your DB you can patch first one node and then the other, allowing for 0 downtime patches.  You can have rolling upgrades on shared home as well, but it is a longer procedure and not supported automatically by OPatch.
  2. You can’t lose your entire cluster by a careless delete. Never underestimate the impact of human errors.
  3. With shared home, mistakes done in ORACLE_HOME impact the entire cluster. With private homes – mistakes impact just one node.
  4. Add node / Delete node procedures are somewhat simpler (but take longer) on private homes. Especially when doing delete node, you don’t run the risk of deleting the shared oracle home by mistake. Very scary!
  5. Starting Oracle demands that at least the oraInventory will be local.
  6. Oracle recommends local home. Sometimes, that’s a good enough reason.

Why use shared home?

  1. Quicker installs and upgrades, because there is no need to copy all files twice, over the interconnect.
  2. If your shared storage is advanced enough to support snapshots, you have the ability to take a snapshot of ORACLE_HOME before applying a patch and simply restoring the snapshot if the patching went wrong.
  3. You can really easily migrate nodes or entire DBs from server to server that way.
  4. No version compatibility issues between different nodes on cluster. You know that all your nodes are always running exactly same version, patches, etc.
  5. You don’t have to ssh from server to server while trying to track issues in alert logs and dump files.
  6. Shared storage tend to be more stable, have checksum, striping, mirroring and other nice stuff. With ORACLE_HOME on this storage, you are less likely to lose a node to media failure.

6 Comments on “ORACLE_HOME – to share or not to share”

  1. Downtime? no difference. If you are running with a shared home, you simply install in a separate Oracle Home. Yes you need the time to install that Oracle Home but that is not downtime. Werner Puschitz explained in his “6-nodes Rac in 30 minutes best practices” session in OOW 2006 that he is using shared home with 2 Oracle Homes to rollup OPatches.

    Hey Chen, you missed the best point of shared home!
    If you are running 10g and 11g on a 6-nodes cluster, you save 50 Gb of storage by using shared home 🙂


  2. Dan Norris says:

    @laurentschneider Are we really going to get excited about 50Gb of disk space in a 6-node cluster? Less than 10Gb per node is hardly a reason to do anything at all! I’ll spot you the $20 it would cost 🙂

    I agree that you could just use a new OH for patching, but I think #2 in the “why use private home” list is my personal breaking point. With one OH, it’s too easy to accidentally have some disaster that would cause a whole cluster outage. I do think that in very large clusters, multiple cluster OHs is an interesting option to blend protection with simplified management. However, such an environment requires some special procedures for patching and the like that aren’t documented well anywhere (at least not yet).

    I have to agree overall that the cited whitepaper is excellent! I was one of the reviewers and only regret that it wasn’t able to include more formal treatment of the hybrid case (multiple shared OHs), especially for large clusters. Maybe in a future revision that may be handled more clearly.

  3. Asif Momen says:

    We have 3 node rac on “Private Home (PH)” and I think the main advantage of PH is to avoid single point of failure.

  4. I’m there with Asif and Dan, Human error can and does happen, though I’d question how often DeleteNode happens to production systems (as opposed to AddNode).

  5. @dannoris you are right. Still 50 Gb is not 20$ if you consider backup, mirroring and all the additional processing…

  6. […] I have read the following article but still need a solid reason behind choosing anyone of them. ORACLE_HOME – to share or not to share RAC Filesystem Options | Oracle FAQ BR// Reply With […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s