Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Does Oracle have any built-in features to support a master-slave mirroring mechanism ?

I am looking to mirror/replicate the production server on to a read-only database. The read-only database would be used for reporting and such purposes.

We are using Oracle 10gR2

share|improve this question
up vote 2 down vote accepted

Oracle Dataguard is what you want. It provides a master-slave configuration for up to 9 slaves (which is pretty impressive!)

Its expensive though, you need Oracle enterprise edition.

share|improve this answer
Thanks. I will look into DG. Yes, our client would have Oracle Enterprise Edition. – Sathya Jul 1 '09 at 7:24

One thing about Oracle: I really really recomment NOT using RAC unless you are an Oracle guru. Everyone gets RAC horribly wrong.

I am not an Oracle guru, but from what I understand at least historically Oracle uses RAC for their clustering. That's two (or more) servers with the same storage, meaning you will probably need a SAN and another barrel full of money for the licensing.

I am not aware of a read-only-slave solution for Oracle. That doesn't mean that there isn't one.

share|improve this answer

I don't believe you need DG to use a logical standby database. . However, you will need to license your standby database/server as well. Here is a pretty good description of the manual steps necessary to build one. It works - I've done it.

share|improve this answer
You can create a physical standby without DataGuard-- you would just need to restore a database backup to a backup machine, copy the archived logs as they are generated and apply them. Creating a logical standby without DataGuard would be far more difficult. In theory, you could use Streams and apply the LCRs to the destination database, but that involves a lot more work than simply configuring a standby. And if you can use Streams, you've got the enterprise edition, so you already have DataGuard. Either way, the standby needs to be licensed. – Justin Cave Jun 30 '09 at 21:15
I stand corrected. I was apparently using a component of DG (real time apply) without actually realizing it was a part of DG. – DCookie Jun 30 '09 at 22:06

dataguard in 10g doesnt support reading of data from the standby though. So you need "Active dataguard" available in 11g.

Also - About streams on the post above (comment isnt available for me yet!) streams is now deprecated and replaced with oracle goldengate.

share|improve this answer

Look into Streams Replication - You won't need the additional Dataguard licensing. It takes a bit of practice to get it right, but if you're using Grid Control, it provides a wizard to help you set it up. You could also just create the scripts using the Enterprise Manager. I have used this for one way and two way replication.

share|improve this answer
Streams requires that the source database be running the enterprise edition. DataGuard is part of the enterprise edition license. So I'm not sure what licensing benefit you are expecting to get from Streams over DataGuard. You could use Streams to have standard edition slaves off of an enterprise edition master, but that would severely complicate failover. – Justin Cave Jun 30 '09 at 14:43

You can set up 3 database servers and import start-up database into 3 servers, Please configure your insert and update application so that it writes on other servers (its mechanism is so easy) then you have mirrored exactly on other server...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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