Advanced Replication

Posted by

Long before Streams, long before Goldengate, if you want to keep data between sites synchronised in some fashion, or even allow sites to independently update their data, there was the Advanced Replication facility in Oracle.  An “extension” of the concept of simple materialized views (or snapshots as they were called then), you could design complete replicated environments across Oracle databases.

But it was a non-trivial exercise to do this.  You had to be familiar with replication groups, replication objects, replication sites, master groups, master sites,  master definition sites, deferred transactions, quiescing, updatable materialized views, replication catalogs, conflict resolution…the list goes on an on.

Much (all?) of this has been obsoleted in one way or another by Goldengate, Active DataGuard, and other simpler more powerful technologies that the Oracle database offers today. It is probably for this reason that Advanced Replication has come to a natural end of life, as noted in the 12.2 Documentation.

“Desupport of Advanced Replication

Starting in Oracle Database 12c release 1 (12.1) the Advanced Replication feature of Oracle Database is desupported.

The Oracle Database Advanced Replication feature is desupported in its entirety. The desupport of this feature includes all functionality associated with this feature: multimaster replication, updateable materialized views, hierarchical materialized views, and deployment templates. Read-only materialized views are still supported with basic replication.

Oracle recommends that you replace your use of Advanced Replication with Oracle GoldenGate.”

So if you are still hanging old to all of those old complicated Advanced Replication mechanisms…it’s time let them go.


  1. “Oracle recommends that you replace your use of Advanced Replication with Oracle GoldenGate”
    which happens to be separately licensed and more expensive than the database engine itself.

    Is really no one at Oracle listening to the raucous laughter?

  2. Does GG support conditional replication yet like dbms_streams.set_tag did intra-transaction. I.e. in streams we could do insert … Update something…dbms_streams.set_tag(’01’) update(will not rep)…dbms_streams.set_tag(null) update (will replicate) ..commit;
    When I last spoke with the GG product manager this could only be done by logging in with a separate user.

  3. I remember myself about 10 years ago, trying to master all the small details of the Advanced Replication,
    ( thanks to Steven Feuerstein’s “Oracle PL/SQL Built-In Packages” old good book 🙂 )
    for possibly using it as a replacement of our in-house developed alternative, for our specific scenario …
    but ultimately we lived for years with our own solution, which was not bad at all … until, finally, the several databases were consolidated into a single one … as Tom Kyte always says, “if you find yourself having to replicate too much, then you probably should have one single database” .

    I also remember that both Streams and Golden Gate (which was not yet an Oracle product in those times)
    seemed to us far too complicated, and especially requiring DBA assistance in case of any incident.

    Materialized views (in our “extended” scenario) were more easily controllable and manageable …
    and I have made a whole project of creating some nice supervision tools for the simple end-user…
    which, as so often, remained known to me only 😦 …

Got some thoughts? Leave a comment

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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.