Trigger execution in a replication system can cause problems when both the transaction that caused a trigger to fire and the transactions that resulted from the trigger are replicated. This may result in data duplication in the case where a trigger causes data to be recorded twice for a single operation performed on an audited table. It may also result in data inconsistency in the case where a trigger results in DML commands being performed twice: once as a result of the trigger firing at the primary database and a second time as a result of the trigger firing at the replicate database to which trigger-altered data has already been replicated. To avoid data duplication and inconsistency, it is important to control trigger execution in the replication system. However, Oracle provides no session-level command to disable trigger execution.
Replication Server allows you to disable trigger execution at the session or connection level. You can control trigger firing each time a PL/SQL command is executed against the replicate database. Controlling trigger execution at the replicate database eliminates data duplication and inconsistency caused by the absence of any trigger control at the replicate database.
For a complete description of the Replication Server rs_triggers_reset function, see the Replication Server Reference Manual. For complete instructions on controlling trigger execution at the replicate database, see Chapter 10, “Oracle Replicate Data Server Issues” in the Replication Server Heterogeneous Replication Guide.