Release Notes for Red Hat build of Debezium 1.9.7
What's new in Red Hat build of Debezium
Abstract
Chapter 1. Red Hat build of Debezium 1.9.7 release notes
Debezium is a distributed change data capture platform that captures row-level changes that occur in database tables and then passes corresponding change event records to Apache Kafka topics. Applications can read these change event streams and access the change events in the order in which they occurred. Debezium is built on Apache Kafka and is deployed and integrated with AMQ Streams on OpenShift Container Platform or on Red Hat Enterprise Linux.
The following topics provide release details:
1.1. Debezium database connectors
Debezium provides connectors based on Kafka Connect for the following common databases:
- Db2
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
1.1.1. Connector usage notes
Db2
-
The Debezium Db2 connector does not include the Db2 JDBC driver (
jcc-11.5.0.0.jar
). See the deployment instructions for information about how to deploy the necessary JDBC driver. - The Db2 connector requires the use of the abstract syntax notation (ASN) libraries, which are available as a standard part of Db2 for Linux.
- To use the ASN libraries, you must have a license for IBM InfoSphere Data Replication (IIDR). You do not have to install IIDR to use the libraries.
-
The Debezium Db2 connector does not include the Db2 JDBC driver (
MongoDB
- Currently, you cannot use the transaction metadata feature of the Debezium MongoDB connector with MongoDB 4.2.
Oracle
-
The Debezium Oracle connector does not include the Oracle JDBC driver (
ojdbc8.jar
). See the deployment instructions for information about how to deploy the necessary JDBC driver.
-
The Debezium Oracle connector does not include the Oracle JDBC driver (
PostgreSQL
-
To use the Debezium PostgreSQL connector you must use the
pgoutput
logical decoding output plug-in, which is the default for PostgreSQL versions 10 and later.
-
To use the Debezium PostgreSQL connector you must use the
1.2. Debezium supported configurations
For information about Debezium supported configurations, including information about supported database versions, see the Debezium 1.9.7 Supported configurations page.
1.2.1. AMQ Streams API version
Debezium runs on AMQ Streams 2.2.
AMQ Streams supports the v1beta2
API version, which updates the schemas of the AMQ Streams custom resources. Older API versions are deprecated. After you upgrade to AMQ Streams 1.7, but before you upgrade to AMQ Streams 1.8 or later, you must upgrade your custom resources to use API version v1beta2
.
For more information, see the Debezium User Guide.
1.3. Debezium installation options
You can install Debezium with AMQ Streams on OpenShift or on Red Hat Enterprise Linux:
1.4. New Debezium features
Debezium 1.9.7 includes the following updates.
1.4.1. Features promoted to General Availability
The following features are promoted from Technology Preview to General Availability in this refresh of the 2022.Q3 release:
- Support for Oracle Real Application Clusters
- The Debezium connector for Oracle is now supported for use with Oracle Real Application Clusters (RAC).
1.4.1.1. Features that were promoted to General Availability in the previous Debezium release
The following features are promoted from Technology Preview to General Availability in the 2022.Q3 release:
- Ad hoc and incremental and snapshots
- Provides a mechanism for re-running a snapshot of a table for which you previously captured a snapshot.
- Debezium Oracle connector
The connector for Oracle Database is now fully supported on databases that are configured to use LogMiner. This release of the Debezium Oracle connector includes the following updates:
-
DBZ-3317 The documentation that describes the
decimal.handling.mode
property is now consistent with similar documentation for other Debezium connectors. - DBZ-4404 The connecter now supports using signals to trigger ad hoc snapshots in Oracle versions earlier than 12c.
- DBZ-4436/ DBZ-4883 The deployment documentation now describes how to obtain the Oracle JDBC driver as a Maven artifact.
- DBZ-4494 Documentation describes how to set database permissions for the Oracle connector LogMiner user.
- DBZ-4536 Increases flexibility of the Oracle connector error handler to retry errors that occur during a mining session.
- DBZ-4595 The Oracle connector now supports 'ROWID' data types.
- DBZ-4963 Introduce log.mining.session.max.ms configuration option for Oracle connector.
- DBZ-5005 When adjusting the LogMiner batch size, the new size is now based on the current batch size, and not the default size.
- DBZ-5119 Users can configure the connector to emit heartbeat events to ensure that connector offsets remain synchronized in tables where changes do not occur for extended periods.
- DBZ-5225 The LogMiner event SCN is now included in Oracle change event records to prevent situations in which every event that the connector emits during an interval uses the same low-watermark SCN value of the oldest in-progress transaction.
- DBZ-5256 To prevent failures when an improperly deleted archive log cannot be found during connector startup, during the snapshot phase, the Oracle connector no longer defaults to checking the progress of incomplete transactions.
-
DBZ-5399 Update documentation for the
signal.data.collection
property to specify that in a pluggable database environment the value of the property must be set to the name of the root database.
For a list of Oracle connector features that were introduced during the Technology Preview, see the 2022.Q1 Release notes
-
DBZ-3317 The documentation that describes the
- Outbox event router
- A single message transform (SMT) that supports the outbox pattern for safely and reliably exchanging data between multiple (micro) services.
- Sending signals to a Debezium connector
- The Debezium signaling mechanism provides a way to modify the behavior of a connector, or to trigger the connector to perform a one-time action, such as initiating an ad hoc incremental snapshot of a table.
1.4.2. Debezium feature updates
This refresh of the 2022.Q3 release of Debezium provides several feature updates and fixes. The following list highlights some significant recent changes:
- DBZ-5235 Read Debezium Metrics From Debezium Server Consumer.
- DBZ-5292 Treat SQLServerException with "Broken pipe (Write failed)" exception message as a retriable exception.
- DBZ-5429 Add INITIAL_ONLY to Db2 snapshot mode.
- DBZ-5441 Unsupported non-relational tables should be gracefully skipped by the connector during streaming.
- DBZ-5478 Restart SQL Server task on "Socket closed" exception.
- DBZ-5591 Traditional snapshot process setting source.ts_ms.
- DBZ-5631 Support for setting stats_sample_pages=default in alter table statements.
- DBZ-5636 Support for using any expression in kill statements.
1.4.2.1. Debezium updates in previous releases
- Debezium 2022.Q3 updates
The following list contains information about changes included in the original 2022.Q3 Debezium release:
- DBZ-3762 By default, the MySQL connector no longer propagates in-line comments in an event DDL to the database history.
- DBZ-4351 Adds metrics to monitor number of DML create/update/delete events connector emits since last start
- DBZ-4415 Removes support for using the MongoDB connector with MongoDB 5 or greater in oplog mode
- DBZ-4451 Connectors can now correctly recover the history of renamed tables.
- DBZ-4472 Connectors logs now record information about an event’s source partition.
- DBZ-4478 Metrics for a connector can now be retrieved from multiple partitions.
-
DBZ-4518 You can now configure the KAFKA_QUERY_TIMEOUT by setting the
database.history.kafka.query.timeout.ms
property. - DBZ-4541 The MySQL and Oracle connectors must now successfully register JMX metrics before they can start.
- DBZ-4547 The MySQL connector can now successfully create its history topic in a SaaS environment.
- DBZ-4600 When the MongoDB connector is used with the outbox event router, you can now configure it to decode binary payloads.
- DBZ-4730 When a connector is configured to decimal string mode, it now expects plain string values instead of scientific exponential notation.
- DBZ-4809 Adds a task id and partition to the logging context for multi-partition connectors.
- DBZ-4823 The MySQL connector no longer logs a null value for the tableId of excluded tables.
- DBZ-4832 The MySQL connector now longer obtains truststore and keystore parameters from system variables.
-
DBZ-4834 Incremental snapshots now correctly include tables that are added to the
include
list. - DBZ-4861 The PostgreSQL connector now provides schema information when logging snapshot events.
- DBZ-4948 The PostgreSQL connector now retries connections that close as a result of a network exception.
- Debezium 2022.Q1 updates
- For a list of features that were included in the previous Debezium release, see the 2022.Q1 Release notes.
1.5. Technology Preview features
Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend implementing any Technology Preview features in production environments. Technology Preview features provide early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.
Debezium includes the following Technology Preview features:
- Ad hoc and incremental snapshots for MongoDB connector
- Provides a mechanism for re-running a snapshot of a table for which you previously captured a snapshot.
- CloudEvents converter
-
Emits change event records that conform to the CloudEvents specification. The CloudEvents change event envelope can be JSON or Avro and each envelope type supports JSON or Avro as the
data
format. The CloudEvents change event envelope supports Avro encoding change event envelope can be JSON or Avro and each envelope type supports JSON or Avro as thedata
format. - Content-based routing
- Provides a mechanism for rerouting selected events to specific topics, based on the event content.
- Custom-developed converters
- In cases where the default data type conversions do not meet your needs, you can create custom converters to use with a connector.
- Filter SMT
- Enables you to specify a subset of records that you want the connector to send to the broker.
- Signaling for the MongoDB connector
- Provides a mechanism for modifying the behavior of a connector, or triggering a one-time action, such as initiating an ad hoc snapshot of a table.
- Use of the
BLOB
,CLOB
, andNCLOB
data types with the Oracle connector - The Oracle connector can consume Oracle large object types.
1.6. Deprecated Debezium features
- PostgreSQL
truncate.handling.mode
property -
The
truncate.handling.mode
property for the Debezium PostgreSQL connector is deprecated in this release and is scheduled for removal in a future release (DBZ-4419). Use theskipped.operations
property in its place. - MonitoredTables option for connector snapshot and streaming metrics
-
The
MonitoredTables
option for Debezium connector metrics is deprecated in this release and scheduled for removal in a future release. Use theCapturedTables
metric in its place.