Golden Gate architecture: GoldenGate trigger handling

From Robs_Wiki
Jump to: navigation, search

Whether or not triggers are being executed on the target depends on the version of GoldenGate. Prior to 12c, the default was NOSUPPRESSTRIGGERS, meaning that triggers will be executed. In 12c the default is SUPPRESSTRIGGERS, which means that triggers are not being executed at the target.

This setting can also be configured in the replicat parameterfile:

DBOPTIONS SUPPRESSTRIGGERS

However, altough you probably want most of the triggers not to be executed on the target, it can be possible to override this setting, for example when you implement a heartbeat table.

The way to exclude the trigger from the SUPRRESSTRIGGERS setting is to grant the trigger an exception. This can be done as follows on the target:

SQL> EXEC dbms_ddl.set_trigger_firing_property('HR','trg_tbl_heartbeat', FALSE);'

The result of the statement above is that trigger hr.trg_tbl_heartbeat will go off in the target database.