SnapshotLog Connector
solutions.a2.cdc.oracle.runtime.thread.KafkaSourceSnapshotLogConnector reads changes from Oracle Database materialized view logs as a source for data changes and materializes them at a heterogeneous database system.
This connector is not recommended for production use due to the very large load it creates on the database. Consider using the RedoMiner Connector instead.
Prerequisites
No materialized view should consume information from materialized view logs used by this connector.
The user running the connector must have the following privileges:
GRANT SELECT ON V_$INSTANCE TO <CONNECTOR-USER>;
GRANT SELECT ON V_$LICENSE TO <CONNECTOR-USER>;
GRANT SELECT ON V_$DATABASE TO <CONNECTOR-USER>;
In addition, the user needs read privileges on the underlying base tables and materialized view logs.
Creating Materialized View Logs
Create materialized view logs over replicated tables with these options:
- WITH PRIMARY KEY and/or WITH ROWID
- SEQUENCE
- EXCLUDING NEW VALUES
- Without COMMIT SCN option
You do not need to specify a column list when creating materialized view logs for use with oracdc. The connector reads only the primary key value and/or ROWID of the row in the master table.
Operation Modes
| Snapshot Log With | Master Table Access | Key for External System |
|---|---|---|
| Primary key | Primary key | Primary key |
| Primary key and ROWID | ROWID | Primary key |
| ROWID | ROWID | ROWID (String, key name ORA_ROW_ID) |
Example Setup
CONNECT scott/tiger
CREATE TABLE DEPT (
DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);
CREATE TABLE EMP (
EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT
);
CREATE MATERIALIZED VIEW LOG ON DEPT
WITH PRIMARY KEY, SEQUENCE
EXCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON EMP
WITH PRIMARY KEY, SEQUENCE
EXCLUDING NEW VALUES;