Log-Based Change Data Capture

Change Data Capture (CDC) is the concept of capturing data changes in a database and processing those data changes in some way. One way of processing data changes is to save the changes to an auditing system to audit who executed the data changes. Another way of processing data changes is to synchronize the changes to another database.

Whatever processing needs to be done for the changed data, we need to find a way to capture the changed data.

In the past, the only way to capture data changes at a database would be to install triggers on tables and those triggers would execute when data changes. The triggers would write the changing data somewhere for further processing.

For many database instances, this method of capturing data changes is acceptable. But there may be some reasons that installing triggers on tables is just not acceptable. One reason may be that installing triggers on tables and having these triggers execute when data is changed may slow down the applications that are changing the data. It also may slow down the database overall. 

Another reason may be that the database where the data changes are being captured is a database from a product that was purchased. The vendor of this product may void the warranty and stop support because of objects being installed in the database that is not a part of the vendor’s product.

Log-Based Change Data Capture is a newer method of change data capture that reads the database changelogs to capture the data changes. This method of change data capture eliminates the overhead that may slow down the application or slow down the database overall. But the step of reading the database change logs adds some amount of overhead to the database. Finally, it eliminates the issue that may cause vendors to void the warranty because no triggers are installed in the database.

SymmetricDS provides the ability to capture changed data through the use of triggers installed on the tables or through the use of log-based change data capture. All databases supported by SymmetricDS can use triggers to capture changed data. Three of the databases currently can use log-based change data capture, with more to come in the future. The three databases with log-based capture that SymmetricDS supports now are Oracle, SQL Server, and PostgreSQL.

Stay tuned to find out more databases that will be supported by SymmetricDS using log-based change data capture.