Sunday, October 23, 2011

Database Replication: Streams vs. GoldenGate

Replication in any database provides functionality to facilitate replication (one way or multi), upgrades, reporting, data warehousing, query offloading, and many others without having to put pressure on production. Actually the main benefit of replicating data in a database is to reduce and if possible, eliminate, the load on the source system. It also allows you to offload some percentage of data thus move load to another server. Replication of part of the source may be more efficient than cloning it completely by the use of a standby system, when remote sites do not need to be exact copies of the source databases.

From the point of Replication, Streams and GoldenGate might seem similar but are very different. Streams for starters sits inside the database which in experience, makes it slower. GoldenGate on the other hand sits outside and uses the memory from the OS and NOT from the database. It's basic design is to read redologs/archive logs like a journal and record all new transactions that it encounters (of course based on your parameter settings).

Streams architecture on the other hand uses AQ's within the database which has proven to be very inefficient. More over streams for heterogeneous environments is very convoluted. Personally I have yet to see a successful efficient Heterogeneous environment that people would prefer to use Streams over OGG.

Some of the places where OGG is a hit:
1. One way replication - Reporting
2. One way replication - DR (esp when the network pipe is small)
3. One way replication - DW/ODS/BI
4. Query off-Loading
5. Heterogeneous Replication (From Oracle -> MS SQL,etc)
6. Multi master between two database (Homogenous or Heterogeneous).






No comments:

Post a Comment