Skip to main content
With change data capture (CDC), Corvic keeps tables up to date from your Oracle database’s committed changes. Corvic reads each table once as a snapshot, then follows each committed insert, update, and delete. Corvic logs in and reads those changes from the redo and archive logs with LogMiner, on the pipeline’s schedule. Changes show up when the pipeline runs, as often as every minute. Nothing is installed in your database. You create the users below, and the database makes no outbound connection to Corvic. Corvic reaches the database over Private Networking or from Dedicated IP addresses. On a private network, database traffic, including CDC, uses Corvic’s source range to the listener.

What your database needs

  • ARCHIVELOG mode. Turning it on takes a database restart. Keep archived logs longer than the longest gap between pipeline runs. If a log from that gap is gone, Corvic takes a new snapshot of the table.
  • Supplemental logging of primary key columns, so each update and delete logs the key of the row it changed. A table keyed by a unique index needs that index’s columns logged too. Corvic supplies key_log_groups.sql for those tables.
  • A LogMiner user for Corvic. In a multitenant database, use a common user (a name that starts with C##). Corvic supplies logminer_user.sql, which creates the user and its LogMiner grants.
  • A read-only user for the connector, with READ and FLASHBACK on each table. Corvic supplies query_user.sql.
A table without a primary key or a unique index on NOT NULL columns is tracked by ROWID. Such a table can’t have LOB columns or row movement enabled.
If changes stop arriving, check ARCHIVELOG and that archived logs still cover the time since the pipeline last ran, the grants from logminer_user.sql and query_user.sql, and supplemental logging (use key_log_groups.sql for a unique-index key). An interrupted first copy resumes where it stopped, and the watch still works when the connector user lacks FLASHBACK. When you add the connector you can connect as SYSDBA to set up the users, or hand the scripts to your DBA.