If you do not want to let Replicate automaticly set supplemental logging then here are your options:

One option is to run the following on the database level:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;

And the following for every table that has manipulation, filter on columns that are not part of the PK, or tables that do not have a primary key.

ALTER TABLE XXX ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

The other option is to run the following on the database level:

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA

And then for every table:


  • If the table has a primary key:



ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS



  • If the table doesn’t have a primary key and have a unique index:



ALTER TABLE xxx ADD SUPPLEMENTAL LOG GROUP (first unique index columns) ALWAYS



  • If the table doesn’t have a primary key or a unique index or if it has a manipulation or a filter defined on columns that are not part of the PK:



ALTER TABLE xxx ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS