In this era of digital transformation, companies are shifting to the cloud to increase their agility and shorten the time to business insights. Oracle databases have long been entrusted with operational data, and various methods have emerged to replicate or migrate data to cloud targets.
Change Data Capture (CDC) tracks database changes as they happen and generates a continuous stream of change data. Oracle CDC methods allow companies to stream database changes to their cloud targets in real time, enabling timely business intelligence and zero-downtime cloud migrations.
Various CDC approaches have been developed over the years to facilitate real time business operations.
“Efficient and reliable log mining techniques are critical for real time business operations. As database log-mining approaches continue to evolve, data architects need to incorporate low latency methods to stream changes from mission critical database workloads.”
-Alok Pareek, Founder at Striim, former CTO at GoldenGate
LogMiner provides a SQL-based interface to Oracle database redo log files. It’s designed to help users track data corruption (and identify any required recovery actions) and carry out performance tuning and capacity planning.
The LogMiner “continuous mine” feature was introduced to allow automatic, continuous mining of the redo logs. This feature provides near real-time access to redo log changes, which has made it the target for many third-party data integration tools that offer CDC from Oracle.
Recently, Oracle announced that continuous mine would be deprecated in Oracle Database 19c. For that reason, companies using newer versions of Oracle can no longer use the continuous mine feature for CDC.
2. Trigger-based Oracle CDC
Trigger-based Oracle CDC, also known as “synchronous” CDC, starts with defining database triggers that fire before or after INSERT, UPDATE, or DELETE commands (that indicate a change). The change data is used to populate a change table. Each table requires its own change table.
Triggers introduce overhead to operational tables while changes are being made, and can have significant performance impacts on any applications accessing the tables. Furthermore, maintaining the triggers as the application changes leads to management burden.