We have two smallish unrelated databases on two big Oracle Enterprise servers. Instead of buying more licenses and servers for high-availability replicas, can we replicate database B to server A and database A to server B, as long as either server can handle the load for both databases if necessary?

Seems like there are several underlying questions:

  1. Which replication methods can replicate an active DB to a standby DB in both directions between two servers with good failover?
  2. How much lighter is a replicate-to-standby workload than a production workload?
  3. If people aren't doing this, are hidden gotchas stopping them or is it just not in fashion?

These days, Data Guard is included with Enterprise Edition.If you have enough spare capacity on each of the servers, I believe they can work as a physical standby for each other.

Logical and possibly bi-directional replication is more complex, and you would have to consider the types of objects and replication in the solution. Most solutions does not easily support the replication of DML etc.

Note that Data Guard configured as physical standby might still consume a considerable amount of resources and depending on the configuration, may impact on production performance on both servers.

| improve this answer | |

Bi-directional replication is technically feasible, but is anything but simple, which is why it is not used unless absolutely necessary.

Streams can be setup to do bi-directional replication. See the Oracle® Streams Replication Administrator's Guide. However, Streams cannot handle automatic client fail-over and since it seems that high-availability is your goal, this is not an option.

The Oracle solution for this type of problem is RAC. It meets both the bi-directional replication requirement and the fail-over requirement. However, if you are looking for storage redundancy, it does not provide that as the database storage must be shared between the servers. If your primary concern is instance failure, then it will help you. Since you are on Enterprise it is an extra cost option, but if you can tolerate downgrading to Standard Edition, you can run RAC without any additional cost.

Another option would be to turn your two servers into Virtual Machine Hosts and virtualize your two databases. This again would not provide storage redundancy, but would allow you to transparently migrate either database to either server, running them on the same server when there is maintenance to be done or a server outage occurs.

The Golden Gate product Oracle acquired does bi-directional replication and is more flexible than streams, but at a higher cost.

There are other options at various levels of granularity and capability all the way from Materialized Views over database links to storage based snapshots. Consider carefully what you need and whether a solution meets your primary requirements.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.