Listing of the conflict with the LIST CONFLICT command
To view the actual SQL and other details associated with of the transaction that is causing the conflict:
Panelnoformat | ||
---|---|---|
| ||
dbvrep> LIST CONFLICT |
or by specifying the actual conflict id:
Panelnoformat | ||
---|---|---|
| ||
dbvrep> LIST CONFLICT 345 |
or by specifying last:
Panelnoformat | ||
---|---|---|
| ||
dbvrep> LIST CONFLICT LAST |
Note |
---|
When no conflict data is shown with LIST CONFLICT With two-way replication, multiple replication pairs or one-to-many replication, ensure the correct replication pair is chosen before issuing the LIST CONFLICT command. Please see CHOOSE REPLICATION |
Viewing all the conflicts
It is also possible to obtain the conflict information directly from the Dbvisit Replicate repository. Logon to the apply APPLY (target database) as the Dbvisit Replicate schema owner (dbvrep) and query table:
Panelnoformat | ||
---|---|---|
| ||
DBRSAPPLY_CONFLICT_LOG |
This lists all the conflicts encountered, including failing SQL.
The column SQL_TEXT contains the actual SQL statement that is run against the target database and includes the bind variables.
LIST TRANSACTIONS
When viewing the conflicts, it may also be useful to view the opened uncommitted transactions on apply. This commands shows the Transaction ID of the SQL that is uncommitted on Apply. The transaction id is the hex value of the combined columns XIDUSN, XIDSLOT, XIDSQN from v$transaction on the target database. The Transaction ID is also set in columns MODULE and ACTION from V$SESSION on the target database.
The transaction list may also include internal non committed transaction not related to the replication. Please see http://support.dbvisit.com/entries/24825508-Committing-uncommitted-transactions for an example of how to use this command.
How much time is spend on the conflict
Conflicts will slow down the replication process as extra resources are required to process the conflicts
To determine how much time is spent retrying/waiting for conflicts to resolve, the following query can be used:
No Format |
---|
SQL> select sum (resolve_date-apply_date) from dbrsapply_conflict_log group by trunc(resolve_date); |
The query will list the sum of all conflicts. The Query can be changed to group the time for each different conflict.