Architecture Overview
oracdc provides three source connectors for capturing changes from Oracle databases. Each uses a different approach to reading change data.
RedoMiner Connector (Recommended)
Class: solutions.a2.cdc.oracle.OraCdcRedoMinerConnector
RedoMiner reads changes directly from Oracle redo log files without using any additional software installed on the database server or in the Oracle database itself. We recommend RedoMiner because:
- It uses the database only to read table column information and determine the current SCN, eliminating additional CPU and IO load
- It does not create any objects in the database
- It does not require any additional software on the database server
- It works with various database configurations, including Oracle RAC
- It uses streaming data transfer via SSH, SMB, BFILENAME, or direct ASM access
- It processes and transforms data without involving the database server (including XMLTYPE, JSON, VECTOR)
- It works with minimal SUPPLEMENTAL LOGGING at the database level
LogMiner Connector
Class: solutions.a2.cdc.oracle.OraCdcLogMinerConnector
LogMiner uses the Oracle LogMiner API as source for data changes. It is designed to minimize side effects of using Oracle LogMiner. Use LogMiner only if you cannot use RedoMiner, for example, if your organization's security policy prohibits remote connection to Oracle ASM with SYSASM/SYSDBA rights.
SnapshotLog Connector
Class: solutions.a2.cdc.oracle.runtime.thread.KafkaSourceSnapshotLogConnector
SnapshotLog reads changes from Oracle materialized view logs. While it demonstrates Oracle capabilities, it is not recommended for production use due to the very large load it creates on the database.
Full SnapshotLog documentation
Connector Comparison
| Feature | RedoMiner | LogMiner | SnapshotLog |
|---|---|---|---|
| Database load | Minimal | Moderate | High |
| LOB support | BLOB, CLOB, NCLOB, XMLTYPE, JSON, VECTOR | BLOB, CLOB, NCLOB, XMLTYPE | No |
| Oracle RAC | Yes | Yes | No |
| Data Guard standby | Yes | Yes (Active DG) | No |
| DDL / Schema evolution | Yes | Yes | No |
| Online redo processing | Yes | Yes | N/A |
| TDE column encryption | Yes | No | No |
| Supplemental logging | Minimal or ALL | ALL required | Not required |
| Requires DB server access | No (reads via SSH/SMB/ASM) | No (JDBC only) | No (JDBC only) |
Data in Transit Encryption
All connectors use the Oracle JDBC driver version 26ai to connect to the database and Oracle ASM. To configure TLS for the JDBC connection, refer to the Oracle JDBC documentation.