|
|
| |
 |
|
Oracle Tips by Burleson |
Oracle Streams
Chapter 3 -
Streams
Replication
Multi-Way
Replication and Conflict Resolution
-
Uniqueness Conflict: This occurs
when a row with an identical primary key value or unique key
value is inserted at almost the same time in two sites. When the
row LCR reaches the destination, it finds that the row with the
same primary key or unique key is already present. It becomes an
integrity violation and results in an error. Now both the sites
have different rows. This kind of conflict is called a
uniqueness conflict.
-
Delete Conflict: There are some
situations where at Site-A, a row is updated and on Site-B, the
same row is deleted. Both of these transactions are performed at
almost the same time. When Site-A’s row LCR goes to the
destination Site-B, it does not find the row to update. In the
same way, when the Site-B’s row LCR reaches the destination of
Site-A, it has different values. In another situation, the same
row may be deleted in both the sites at almost the same time. In
this situation, both of the row LCRs will fail to execute the
delete operation on the destination site. This situation is
called a delete conflict.
-
Foreign Key Conflict: In a situation
where there is dependency between the parent and child table,
the apply process may fail to execute an update, or update just
because the row parent key does not exist at the destination.
For example, when a row is inserted into ALLINSURED table with
polno of 452289, it has sales_id value of 165.
sales_id is the foreign key. Salesman is the parent table,
where a row for sales_id of 165 is inserted. When the row
LCR containing the sales_id arrives later than the
ALLINSURED row LCR to the destination database, the apply
transaction for row insertion into ALLINSURED fails with foreign
integrity failure. This happens because the row with sales_id
of 165 does not exist when there is an attempt to insert row
into ALLINSURED table at that destination. This kind of
situation is called a foreign key conflict.
All the mentioned scenarios are
automatically detected by the Streams Apply process. By default,
it will place them into an error queue. Unless an error handler
or any other type of handler is provided to the apply procedure,
they will remain in error conditions.
The above text is
an excerpt from:
Oracle Streams
High Speed Replication and Data
Sharing
ISBN 0-9745993-5-2
by Madhu Tumma
 |
For more details and scripts, see my new book "
Oracle
Tuning: The Definitive Reference", over 900 pages
of BC's favorite tuning tips & scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot. |
|
|
|