Release Notes for Debezium 2.7

All notable changes for Debezium releases are documented in this file. Release numbers follow Semantic Versioning.

Release 2.7.0.Alpha2 (May 10th 2024)

Kafka compatibility

This release has been built against Kafka Connect 3.7.0 and has been tested with version 3.7.0 of the Kafka brokers. See the Kafka documentation for compatibility with other versions of Kafka brokers.

Upgrading

Before upgrading any connector, be sure to check the backward-incompatible changes that have been made since the release you were using.

When you decide to upgrade one of these connectors to 2.7.0.Alpha2 from any earlier versions, first check the migration notes for the version you’re using. Gracefully stop the running connector, remove the old plugin files, install the 2.7.0.Alpha2 plugin files, and restart the connector using the same configuration. Upon restart, the 2.7.0.Alpha2 connectors will continue where the previous connector left off. As one might expect, all change events previously written to Kafka by the old connector will not be modified.

If you are using our container images, then please do not forget to pull them fresh from Quay.io.

Breaking changes

There are no breaking changes in this release.

New features

  • Add ROW_ID as part of source information block for LogMiner sources DBZ-4332

  • Support for ARRAY data types for postgres DBZ-7752

  • Enhance documentation about using tags to customize connector snapshot/streaming MBean names DBZ-7800

  • Allow specifying the log mining flush table with an optional schema DBZ-7819

  • Added nats JWT/seed authentication config options DBZ-7829

  • Update Debezium container images to use Fedora 38 DBZ-7832

  • Debezium oracle connectors needs to support IN clause for log miner query for more than 1000 tables as it creates performance issue DBZ-7847

Fixes

  • Debezium User Guide 2.5.4: Grammatical error DBZ-7803

  • > io.debezium.text.ParsingException : SQL Contains Partition DBZ-7805

  • Ad-hoc blocking snapshot not working through file channeling without inserting a row in the database. DBZ-7806

  • Postgres: Potential data loss on connector restart DBZ-7816

  • Abnormal Behavior in Debezium Monitoring Example - mysql connector DBZ-7826

  • DEBEZIUM_VERSION is wrongly set to 2.6.0.Alpha1 DBZ-7827

  • Sql Server incorrectly applying quoted snapshot statement overrides DBZ-7828

  • Debezium JDBC Sink not handle order correctly DBZ-7830

  • Fix typo in documentation/modules doc DBZ-7844

  • Support Oracle DDL Alter Audit Policy DBZ-7864

  • Support Oracle DDL Create Audit Policy DBZ-7865

Other changes

  • Log exception details early in case MySQL keep-alive causes deadlock on shutdown DBZ-7570

  • Extend mongodb system tests with ssl option DBZ-7605

  • Refactor oracle connector test job DBZ-7807

  • Fix anchor ID collisions that prevent downstream documentation from building DBZ-7815

  • Add c3p0 timeout configuration example to JDBC sink DBZ-7822

  • Move undocumented option to internal DBZ-7833

  • Increase wait for shouldGracefullySkipObjectBasedTables on XStream DBZ-7839

  • Bump Debezium Server to Quarkus 3.8.3 DBZ-7841

  • Bump Outbox Extension to Quarkus 3.10.0 DBZ-7842

  • in the Cassandra documentation, there is a typo which should have been disable not Dusable. DBZ-7851

Release 2.7.0.Alpha1 (April 25th 2024)

Kafka compatibility

This release has been built against Kafka Connect 3.7.0 and has been tested with version 3.7.0 of the Kafka brokers. See the Kafka documentation for compatibility with other versions of Kafka brokers.

Upgrading

Before upgrading any connector, be sure to check the backward-incompatible changes that have been made since the release you were using.

When you decide to upgrade one of these connectors to 2.7.0.Alpha1 from any earlier versions, first check the migration notes for the version you’re using. Gracefully stop the running connector, remove the old plugin files, install the 2.7.0.Alpha1 plugin files, and restart the connector using the same configuration. Upon restart, the 2.7.0.Alpha1 connectors will continue where the previous connector left off. As one might expect, all change events previously written to Kafka by the old connector will not be modified.

If you are using our container images, then please do not forget to pull them fresh from Quay.io.

Breaking changes

JDBC queries could hang indefinitely in case of database error communication. A configurable timeout was introduced to prevent the issue (DBZ-7616).

SQL Server connector by default processed all transactions available during each data poll. This could lead to out of memeory errors for databases with a large traffic. The default value was changed to limit the number of transactions to 500 (DBZ-7750).

New features

  • Support helm chart installation of debezium-operator DBZ-7116

  • Adding additional-conditions into Incremental Snapshot to MongoDB DBZ-7138

  • Document MongoDB connector inactivity pause and it’s performance implications DBZ-7147

  • Move MariaDB connector from MySQL to its own separate connector DBZ-7693

  • Mongodb Delete events should have _id in the payload DBZ-7695

  • Provide option to encode ordering metadata in each record DBZ-7698

  • Manage escaping when captured table are determined for snapshot DBZ-7718

  • Performance improve in KafkaRecordEmitter class DBZ-7722

  • Introduce RawToString transform for converting GUIDs stored in Oracle RAW(16) columns to Guid string DBZ-7753

  • Improve NLS character set support by including orai18n dependency DBZ-7761

  • Vitess Connector should have parity with MySQL’s time.precision.mode DBZ-7773

  • Document potential null values in the after field for lookup full update type DBZ-7789

  • Fix invalid date/timestamp check & logging level DBZ-7811

Fixes

  • Builtin database name filter is incorrectly applied only to collections instead of databases in snapshot DBZ-7485

  • After the initial deployment of Debezium, if a new table is added to MSSQL, its schema is was captured DBZ-7697

  • The test is failing because wrong topics are used DBZ-7715

  • Incremental Snapshot: read duplicate data when database has 1000 tables DBZ-7716

  • Handle instability in JDBC connector system tests DBZ-7726

  • SQLServerConnectorIT.shouldNotStreamWhenUsingSnapshotModeInitialOnly check an old log message DBZ-7729

  • Fix MongoDB unwrap SMT test DBZ-7731

  • Snapshot fails with an error of invalid lock DBZ-7732

  • Column CON_ID queried on V$THREAD is not available in Oracle 11 DBZ-7737

  • Redis NOAUTH Authentication Error when DB index is specified DBZ-7740

  • Getting oldest transaction in Oracle buffer can cause NoSuchElementException with Infinispan DBZ-7741

  • The MySQL Debezium connector is not doing the snapshot after the reset. DBZ-7743

  • MongoDb connector doesn’t work with Load Balanced cluster DBZ-7744

  • Align unwrap tests to respect AT LEAST ONCE delivery DBZ-7746

  • Exclude reload4j from Kafka connect dependencies in system testsuite DBZ-7748

  • Pod Security Context not set from template DBZ-7749

  • Apply MySQL binlog client version 0.29.1 - bugfix: read long value when deserializing gtid transaction’s length DBZ-7757

  • Change streaming exceptions are swallowed by BufferedChangeStreamCursor DBZ-7759

  • Sql-Server connector fails after initial start / processed record on subsequent starts DBZ-7765

  • Valid resume token is considered invalid which leads to new snapshot with some snapshot modes DBZ-7770

  • NO_DATA snapshot mode validation throw DebeziumException on restarts if snapshot is not completed DBZ-7780

  • DDL statement couldn’t be parsed DBZ-7788

  • old class reference in ibmi-connector services DBZ-7795

  • Documentation for Debezium Scripting mentions wrong property DBZ-7798

Other changes

  • Update documenation for embedded engine DBZ-7632

  • Implement basic JHM perf. tests for async engine DBZ-7633

  • Upgrade Debezium Quarkus Outbox to Quarkus 3.9.2 DBZ-7663

  • Move LogPositionValidator outside the JdbcConnection DBZ-7717

  • Fix mongodb image in system tests DBZ-7739

  • Refactor exporting to CloudEvents DBZ-7755

  • Use thread cap only for deault value DBZ-7763

  • Evaluate cached thread pool as the default option for async embedded engine DBZ-7764

  • Create JMH benchmark for engine record processing DBZ-7776

  • Improve processing speed of async engine processors which use List#get() DBZ-7777

  • Disable renovate in debezium-ui DBZ-7814