Controlling Propagation and Refreshes

As with multi-master table replication,updateable snapshots can propagate their changes back to the master table either synchronously or asynchronously. Unlike multi-master table replication, you can control asynchronous propagation so that DML is sent back to the master table either at the time of snapshot refreshes or at some other scheduled interval. You should evaluate your data flow requirements to determine what best suits your needs. This section presents recommendations for some common scenarios.

Note

Although updateable snapshots can propagate changes back to the master table synchronously, snapshot refreshes (propagation of changes from the master table to the snapshot) are always asynchronous; the snapshot site always polls the master site for refreshes.

Real-Time (Synchronous) Propagation

You can specify synchronous propagation either by specifying propagation_mode =>'SYNCHRONOUS’ in the call to DBMS_REPCAT.CREATE_SNAPSHOT_REPGROUP or by using DBMS_REPCAT.ALTER_SNAPSHOT_PROPAGATION to change the propagation mode if the snapshot replication group already exists.

If you elect to use synchronous propagation, Oracle follows these steps to forward updateable snapshot DML back to the master site:

  1. Oracle locks the record in the snapshot base table and performs the update.

  2. Oracle fires the USTRG$_snapshot_name trigger which invokes the table_name$RP package at the master site.

  3. The table_name$RP package at the master site locks and updates the ...

Get Oracle Distributed Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.