Database level supplemental logging is an Oracle requirement that ensures that the Oracle redo log on the source database contains the information required to describe all data changes completely.
Turning on supplemental logging ensures additional information is inserted into redo stream in order to facilitate replication. The extra level of overhead of adding this information into the redo log is generally less than 1%.
Supplemental logging is not the default behavior of oracle database. It has to be enabled manually after the database is created. It can be enabled at two levels
- DATABASE LEVEL
- TABLE LEVEL
Supplemental logging is also required in order to ensure the following items are replicated succesfullyreplicated successfully:
- chained rows
- clustered tables
- index organized tables (IOTs)
...
Section | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
The supplemental log groups created by Dbvisit Replicate start with a G and then a random hex string: G575B4B0CC2E511E2A20CB8ADB3813
Note |
---|
For Oracle 10g, 11g if there is no primary key defined on the table, then Oracle automatically adds additional columns to the supplemental log data to satisfy either the unique key, or if there is no unique key, then it adds all the columns in the table. |
Note |
---|
For Oracle 9i, Oracle does not automatically adds additional columns. The specific supplemental log level has to be defined. Dbvisit Replicate does this automatically. |
Note |
---|
In Oracle 9i, there is a limit of 33 columns in each supplemental log group. See support.oracle.com note ID 466439.1 So in the case of a table with more than 33 columns you create as many distinct supplemental log groups as required for the same table, e.g., ALTER TABLE <table_name> ADD SUPPLEMENTAL LOG GROUP <log_grp1> |
Verify supplemental logging
To check and monitor what supplemental logging has been turned on, the following query can be run
Section | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Modifying supplemental log behaviour
Please see variable _ADD_SUPLOG in Internal Variables on the default supplemental log behaviour and how to modify this.