Question & Answer
Question
How to enable supplemental logging for Oracle for CDC replication in a RAC environment with more than 1 node?
Cause
CDC has a requirement for Supplemental logging for the database. This is a database level feature.
For more than 1 node if the supplemental logging is enabled for the database. The following DB Query will show as supplemental logging as enabled.
SELECT
supplemental_log_data_min,
supplemental_log_data_pk,
supplemental_log_data_ui,
supplemental_log_data_fk,
supplemental_log_data_all
FROM v$database.
If you try to run replication the scraper will crash and internal errors are seen on the source. On the target the DRAM process crashes as well.
Failure to run this command at each active instance can result in an
ORA-1347 error indicating that the supplemental log data could not be
found.
Answer
In a RAC environment with multiple nodes. supplemental logging should be activated for every node.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Failure to run this command at each active instance can result in an
1.) ORA-1347 error indicating that the supplemental log data could not be found.
2.) ORA-1722 error is shown.
The following quick tests can be done to validate this behavior.
Test 1
Set this parameter
drsetparm -p RedoLogThreadNumber -v 2 ( to make CDC read only RAC Node #2's log files.) No errors in this case as the SUPPLEMENTAL LOG is enabled for this node.
Insert a row into a table on node 1 it is replicated fine. Insert a row into a table on node 2 it is replicated fine.
Test 2
Set this parameter
drsetparm -p RedoLogThreadNumber -v 1 ( to make CDC read only RAC Node #1's log files.) ORA-1722 errors in this case as the SUPPLEMENTAL LOG is disabled for this node.
Insert a row in a table on node 1 it fails with ORA 1722 errors. Insert a row in a table on node 2 it fails with ORA-1722.
Test 3
Set this parameter
drsetparm -p RedoLogThreadNumber -v 0 ( to make CDC read log files from both the nodes.) ORA-1722 errors in this case as the SUPPLEMENTAL LOG is enabled for NODE 2 and disabled from node 1.
Insert a row in a table on node 1 it fails with ORA 1722 errors. Insert a row in a table on node 2 it gets replicated without any errors.
Test 4
Set this parameter
drsetparm -p RedoLogThreadNumber -v 0
Enable supplemental logging for both the nodes and everything is replicated fine.
[{"Product":{"code":"SS6HD6","label":"InfoSphere Change Data Capture for Oracle Replication"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"}],"Version":"3.1","Edition":"All Editions","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Product Synonym
Datamirror Ireflect
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21389500