Previous |
Next |
Conflicts occur when two different databases that are sharing data in a table modify the same row in the table at nearly the same time. When these changes are captured at one of these databases and sent to the other database, an apply process detects the conflict when it attempts to apply a row LCR to the table. By default, apply errors are placed in the error queue, where they can be resolved manually. To avoid apply errors, you must configure conflict resolution so that apply processes handle conflicts in the best way for your environment.
Oracle Database supplies prebuilt conflict handlers that provide conflict resolution when a conflict results from an UPDATE
on a row. These handlers are called prebuilt update conflict handlers.
When an apply process encounters an update conflict for a row LCR that it has dequeued, it must either apply the row LCR or discard it to keep the data in the two databases consistent. The most common way to resolve update conflicts is to keep the change with the most recent time stamp and discard the older change. See "Tutorial: Configuring Latest Time Conflict Resolution for a Table" for instructions about configuring latest time conflict resolution for a table.
The following topics discuss how to configure conflict resolution in a particular type of replication environment:
Tutorial: Configuring Two-Database Replication with Local Capture Processes
Tutorial: Configuring Hub-and-Spoke Replication with Local Capture Processes
Tutorial: Configuring Two-Database Replication with Synchronous Captures
Note: Conflicts are not possible in a replication environment when changes to only one database are captured. In these replication environments, typically the replicas at the other databases are read-only.
Tutorial: Configuring Latest Time Conflict Resolution for a Table
Displaying the Configured Update Conflict Handlers
Oracle Streams Replication Administrator's Guide for detailed information about conflicts and conflict resolution