이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 1. Debezium 3.0.8 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 Streams for Apache Kafka on OpenShift Container Platform or on Red Hat Enterprise Linux.
The following topics provide release details:
- Section 1.1, “Debezium database connectors”
- Section 1.2, “Debezium supported configurations”
- Section 1.3, “Debezium installation options”
- Section 1.4, “Debezium 3.0.8 features and improvements”
- Section 1.4.1, “Breaking changes”
- Section 1.4.2, “General availability features”
- Section 1.4.3, “Technology Preview features”
- Section 1.4.4, “Developer Preview features”
- Section 1.4.5, “Other updates in this release”
- Section 1.5, “Deprecated features”
- Section 1.6, “Known issues”
1.1. Debezium database connectors
Debezium provides source connectors and sink connectors that are based on Kafka Connect. Connectors are available for the following common databases:
- Source connectors
- Db2
- Informix (Developer Preview)
- MariaDB
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Sink connectors
- JDBC sink connector
- MongoDB sink connector (Developer Preview)
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 Db2 connector 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 (
- Oracle
-
The Debezium Oracle connector does not include the Oracle JDBC driver (
21.6.0.0
). See the Oracle connector 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
Additional resources
1.2. Debezium supported configurations
For information about Debezium supported configurations, including information about supported database versions, see the Debezium 3.0.8 Supported configurations page.
1.3. Debezium installation options
You can install Debezium with Streams for Apache Kafka on OpenShift or on Red Hat Enterprise Linux:
1.4. Debezium 3.0.8 features and improvements
1.4.1. Breaking changes
Breaking changes represent significant differences in connector behavior or require configuration changes that are not compatible with earlier Debezium versions.
Debezium 3.0.8 introduces breaking changes that affect the following components:
For information about breaking changes in the previous Debezium release, see the Debezium 2.7.3 Release Notes.
1.4.1.1. Breaking changes relevant to all connectors
The following breaking changes apply to all connectors:
1.4.1.1.1. Java 17 is required
The Java requirements for running Debezium have changed. Beginning with this release, all Debezium connectors require a runtime baseline of Java 17.
If you use Java 11 with new connectors, Kafka Connect silently fails to find the connector. The connector does not report any bytecode errors
To run Debezium Server, a runtime baseline of Java 21 is required.
1.4.1.1.2. Kafka signal no longer reprocessed automatically after a restart (DBZ-7856)
In earlier releases, after a connector restart, Debezium automatically reprocessed Kafka-based signals, which could lead to unintended side effects. Beginning with this release, if a connector stops, and you want to process a Kafka-based signal, you must resubmit the signal.
1.4.1.1.3. Deprecated incremental additional-condition
signal field removed (DBZ-8278)
The deprecated additional-condition
field for incremental snapshot signals has been removed and is no longer supported. This field is replaced with the new additional-conditions
property, which enables you to specify conditions by table. If have scripts or workflows that refer to the old field, update them to use the new property.
1.4.1.2. MariaDB/MySQL connector breaking changes
1.4.1.2.1. Incorrect default value documented for MariaDB and MySQL schema history property (DBZ-8558)
Earlier versions of the MariaDB and MysSQL documentation provided an incorrect default value for the schema.history.internal.store.only.captured.databases.ddl
property. The correct default value is false
.
Although this change does not affect the code, if you previously set this property, review your current configuration to verify that it contans the value that is best suited to your environment. For more information, see the Debezium User Guide.
1.4.1.3. Oracle connector breaking changes
1.4.1.3.1. New default mining strategy (DBZ-3656)
The default mining strategy for the Oracle connector is now online_catalog
. If you previously relied on the default redo_log_catalog
strategy, and you want to continue using that strategy, you must explicitly specify it in the connector configuration.
For more information, see: Section 1.4.2.3.1, “New default mining strategy (DBZ-3656)”.
1.4.1.3.2. Removal of deprecated configuration properties (DBZ-8181).
The following Oracle connector configuration properties that were deprecated in the previous release are now removed in Debezium 3.0.8:
-
log.mining.transaction.retention.hours
replaced bylog.mining.transaction.retention.ms
-
log.mining.archive.destination.name
replaced byarchive.destination.name
log.mining.archive.log.hours
replaced byarchive.log.hours
If you previously set any of the preceding properties for the connector, after the upgrade, update the connector configuration to use the new equivalents.
1.4.1.3.3. Reselect column post processor behavior changed for Oracle (DBZ-8653)
The ReselectColumnsPostProcessor
behavior has changed. In this release, the post processor now reselects Oracle LOB columns regardless of the value of the lob.enabled
configuration property. With this change, you can now use the column reselection post processer to populate LOB columns without mining those columns during streaming.
1.4.2. General availability features
Debezium 3.0.8 provides new features for the following connectors:
- Section 1.4.2.1, “Features promoted to General Availability”
- Section 1.4.2.2, “JDBC sink connector GA features”
- Section 1.4.2.3, “Oracle connector GA features”
- Section 1.4.2.4, “PostgreSQL connector GA features”
- Section 1.4.2.5, “SQL Server connector GA features”
- Section 1.4.2.6, “Post processor and single message transformation (SMT) GA features”
1.4.2.1. Features promoted to General Availability
The following features are promoted from Technology Preview to General Availability in the Debezium 3.0.8 release:
1.4.2.1.1. Debezium connector for MariaDB (DBZ-7693)
The standalone connector implementation for MariaDB is now fully supported.
1.4.2.1.2. Use of large data types (BLOB
, CLOB
, and NCLOB
) with the Oracle connector
The Oracle connector now offers full support for processing BLOB
, CLOB
, and NCLOB
data types. For more information, see Oracle binary and character LOB types in the Debezium User Guide.
1.4.2.1.3. Parallel initial snapshots for SQL-based connectors
The ability to use multiple parallel threads to perform an initial snapshot is now available for general availability for all of the Debezium SQL connectors, except for MySQL and MariaDB. Parallel initial snapshots for the Debezium MariaDB and MySQL connectors is available as a Developer Preview feature.
To configure connectors to use parallel initial snapshots, set the snapshot.max.threads
property in the connector configuration to a value greater than 1
.
For more information, see snapshot.max.threads
in the Debezium User Guide documentation for your connector.
In some environments, increasing the value of snapshot.max.threads
, can result in snapshot failures.
For more information, see Section 1.6, “Known issues”
1.4.2.2. JDBC sink connector GA features
1.4.2.2.1. JDBC retry flushes on specific failures (DBZ-7291)
The JDBC sink connector uses a set of buffers to improve the throughput of writes to the target database. In some cases, the flush operation of these buffers faces specific exceptions when other applications lock a specific row or table. To improve the user experience, two configuration properties are now available for the connector:
flush.max.retries
- Defines the number of retries when a flush failure occurs.
flush.retry.delay.ms
- Defines the number of milliseconds to wait between a retry.
The retry feature is enabled by default. The connector attempts makes a maximum of 5
attempts to retry flush operations, with a 1-second delay between retry attempts. If you do not want the connector to retry flush operations, set flush.max.retries
to 0
to disable this feature.
1.4.2.3. Oracle connector GA features
1.4.2.3.1. New default mining strategy (DBZ-3656)
In Debezium 3.0.8, the default value for the Oracle connector log.mining.strategy
property has changed from redo_log_catalog
to the generally more performant online_catalog
option. If you previously used the default redo_log_catalog
strategy, and you want to retain that setting, after you upgrade to the current version, you must explicitly set the value of the log.mining.strategy
property to redo_log_catalog
.
Additional resources
- Oracle LogMiner mining strategies in the Debezium User Guide.
- What’s the difference between the various mining strategies? in the Oracle connector frequently asked questions.
1.4.2.3.2. Oracle offline RAC node flush improvements (DBZ-8177)
In an earlier release, the Oracle RAC node flush strategy was changed to force a 3-second delay whenever a database administrator takes an Oracle RAC node offline. During this pause, the connector attempts to flush the log writer (LGWR) process. However, the pause would be implemented even in situations in which the LGWR buffers are not flushed. Because RAC nodes cannot write to the redo logs when they are offline, this delay introduced unnecessary latency.
In Debezium 3.0.8, to improve stability, the 3-second delay is now imposed only for connections that are active to an Oracle RAC node. As a result, after an administrator takes a RAC node offline, the connector no longer imposes any latency.
1.4.2.3.3. Oracle CLOB/BLOB default value support (DBZ-8248)
In Oracle, to ensure that LOB columns are non-NULL, you can use the EMPTY_CLOB() or EMPTY_BLOB() functions to specify default values for CLOB or BLOB fields in a table. Earlier Debezium releases did not evaluate these special functions, which resulted in the connector marking these columns as optional, because they could contain null values.
Beginning in Debezium 3.0.8, when you use the EMPTY_BLOB()
or EMPTY_CLOB()
functions to define the default value for an Oracle BLOB column, the connector now emits the field as not optional. The field in the resulting change event contains the appropriate default value, either an empty byte array, or an empty string.
1.4.2.4. PostgreSQL connector GA features
1.4.2.4.1. Snapshot isolation for PostgreSQL (DBZ-1252)
Through the addition of a new connector configuration property, snapshot.isolation.mode
, this feature addresses a longstanding request to provide snapshot isolation support for PostgreSQL. You can now specify how to balance the need for consistency and performance when executing initial and ad-hoc blocking snapshots, by specifying one of four snapshot isolation levels:
-
serializable
(the default) -
repeatable_read
-
read_committed
-
read_uncommitted
These isolation levels specify how consistent the snapshot is and what type of locking to apply to the source data, if any, when the connector reads it during a snapshot.
For example, you can set snapshot.isolation.mode
to serializable
to enforce strict isolation and locking, preventing administrators and users from performing such operations as creating a table index, while a snapshot is running. Or you can apply the least restrictive read_uncommitted
setting, which permits snapshots to read data from user transactions that are not yet committed. Permitting such "dirty reads" as they are known, can lead to inconsistent data, but at the same time, because data is not locked, the snapshot does not interfere with database performance.
For more information, see snapshot.isolation.mode
in the PostgreSQL connector documentation.
1.4.2.4.2. Support for PostgreSQL pgvector data types (DBZ-8121)
PostgreSQL 15 introduced the pgvector
extension, which provides the following data types:
-
vector
-
halfvec
-
sparsevec
Beginning in Debezium 3.0.8, the PostgreSQL connector supports streaming of events that use these pgvector data types. When the connector emits a change event record for an operation that involves one of these data types, it converts each vector type in the source to a semantic type, according to the mappings in following list:
-
vector
: Mapped to anARRAY
of numeric values. -
halfvec
: Mapped to anARRAY
of numeric values. sparsevec
: Mapped to aStruct
that contains the following members:- The number of dimensions in the vector.
- An index that represents the position of vector elements.
After you enable the pgvector
extension in the database, no further configuration is required for Debezium to convert vector values. For more information, see pgvector types in the PostgreSQL connector documentation.
1.4.2.5. SQL Server connector GA features
1.4.2.5.1. Support for capturing data from TDE-encrypted SQL Server databases (DBZ-4590)
Transparent Data Encryption (TDE) is available in SQL Server 2017 Enterprise Edition and in both the Standard Edition and Enterprise Edition of SQL Server 2019 and 2022. As its name suggests, TDE operates automatically and transparently to encrypt data at rest in the database and transaction log. If TDE is enabled for the database, data cannot be read by unauthorized users. At the same time, access by authorized users is not affected, including access by a properly configured Debezium SQL Server connector. No special configuration is required to enable Debezium to stream changes from a SQL Server database that has TDE enabled. That is, if a connector can connect to a database that is not enabled for TDE, and the database later has TDE enabled, the original connector configuration still works.
1.4.2.5.2. MBean name for the SQL Server connector JMX signaling and notifications channels now includes the taskId
(DBZ-8137)
It’s now possible to uniquely identify the signal channel for each database task when you deploy a single connector to stream changes from multiple SQL Server databases.
The format of the MBean names that the Debezium SQL Server connector uses in signaling and notification operations was changed to ensure uniqueness per task. Normal JMX metrics are registered with a taskId
attribute, because SQL Server supports spawning a unique task per database mapping. In past releases, the JMX signal channel did not honor this, which could prevent the connector from starting a channel for each task. Adding the taskId
to the MBean name enables the connector to use multiple tasks when these operations span databases. For more information, see Debezium SQL Server connector schema history metrics in the Debezium User Guide.
1.4.2.5.3. Update SQL Server documentation to correct schema history MBean name(DBZ-8840)
Documentation for the Debezium SQL Server connector now correctly describes the format of schema history MBean names. The updated description specifies that names now include the same task
attribute that is present in the snapshot and streaming metrics MBean names.
1.4.2.6. Post processor and single message transformation (SMT) GA features
1.4.2.6.1. Single message transformation (SMT) to decode PostgreSQL logical messages (DBZ-8103)
PostgreSQL is unique in that you can implement the Outbox pattern without creating an outbox table. Instead, the database can use the pg_logical_emit_message
function to write logical messages directly to the write-ahead log (WAL). However, when Debezium captures these events from the WAL, the data that it sends to Kafka is formatted as a series of bytes. Consuming applications that require structured messages might not be able to consume data in this format.
The new Logical message decoder SMT (DecodeLogicalDecodingMessageContent
) is a PostgreSQL-specific single message transformation. The transformation is designed to convert pg_logical_emit_message
event bytes into a structured event format so that consuming applications can process them. In this way you can implement the Outbox pattern without creating a physical outbox table. For more information, see the Decoding binary content in PostgreSQL logical decoding messages in the Debezium User Guide.
1.4.2.6.2. Reselect columns post processor improvements (DBZ-8212)
To store data types whose sizes exceed the standard capacity of a column, some databases use specialized mechanisms to store the oversized data in an external location, outside of the main table. For example PostgreSQL uses The Oversized-Attribute Storage Technique (TOAST), and Oracle uses Large Object (LOB) storage, or Oracle Exadata Extended Strings.
By default, when Debezium emits an event record in response to a change in a table row that includes oversized data fields, the resulting event record only includes the values of oversized data fields if they are changed by the SQL operation. The connector populates these values only if the table operation modifies the value of the oversized data column. If the value of the oversized data column remains unchanged, the connector inserts a placeholder for the field. This placeholder incorrectly implies that the field does not contain a value.
The ReselectColumnsPostProcessor
was introduced to populate the values of oversized data fields in change event records. This post processor now supports reselection of int
and bigint
array data types, so that these fields are always populated, even when they’re values are unchanged following a SQL operation.
1.4.3. Technology Preview features
The following Technology Preview features are available in Debezium 3.0.8:
- Section 1.4.3.1, “MongoDB collection-scoped streaming (Technology Preview) (DBZ-7760)”
- Section 1.4.3.2, “Support for MySQL vector datatypes (Technology Preview) (DBZ-8157)”
- Section 1.4.3.3, “Compatibility with Oracle Database 23ai (Technology Preview)”
- Section 1.4.3.4, “Support for Oracle EXTENDED string sizes (Technology Preview) (DBZ-8039)”
- Section 1.4.3.5, “Use of XML data types with the Oracle connector (Technology Preview)”
- Section 1.4.3.6, “Support for PostgreSQL 17 failover replication slots (Technology Preview) (DBZ-8412)”
- Section 1.4.3.7, “CloudEvents converter (Technology Preview)”
- Section 1.4.3.8, “Custom converters (Technology Preview)”
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.
1.4.3.1. MongoDB collection-scoped streaming (Technology Preview) (DBZ-7760)
This feature is promoted from Developer Preview to Technology Preview.
In previous iterations of the Debezium MongoDB connector, change streams could be opened against the deployment and database scopes, which was not always ideal for restrictive permission environments. Debezium 3.0.8 introduces a new change stream mode in which the connector operates within the scope of a single collection only, allowing for such granular permissive configurations.
To limit the capture scope of a MongoDB connector to a specific collection, set the value of the capture.scope
property in the connector configuration to collection
. Use this setting when you intend for a connector to capture changes only from a single MongoDB collection.
Limitations
Certain limitations exist when using this feature. If you set value of the capture.scope
property to collection
, the connector cannot use the default source
signaling channel. Enabling the source
channel for a connector is required to permit processing of incremental snapshot signals, including signals sent via the Kafka, JMX, or File channels. Thus, if you set the value of the capture-scope
property in the connector configuration to collection
, the connector cannot perform incremental snapshots.
1.4.3.2. Support for MySQL vector datatypes (Technology Preview) (DBZ-8157)
The Debezium MySQL grammar now processes vector functions. With this change, the Debezium MySQL connector is able to process the new VECTOR(n)
data type that is available in MySQL 9.0. For more information about how Debezium processes Vector types, see the MySQL connector documentation.
1.4.3.3. Compatibility with Oracle Database 23ai (Technology Preview)
This release of Debezium continues to provide integration with Oracle 23ai as a Technology Preview feature.
1.4.3.4. Support for Oracle EXTENDED string sizes (Technology Preview) (DBZ-8039)
In Oracle 12c you can set the database parameter max_string_size
to EXTENDED
to enable the use of extended strings that increase the maximum size of character data types from 4000 bytes to 32K. When you enable the use of extended strings, you do not have to use CLOB-based operations to work with character data up to 32K. Instead, you can use the same syntax that you use with character data that is 4000 bytes or less.
With Debezium 3.0.8, the Oracle connector can now capture changes directly from the transaction logs data for databases that use extended strings. Because extended strings are effectively CLOB operations, to mine these column types, you must set lob.enabled
to true
.
For more information about connector support for extended strings size, see the Oracle connector documentation in the Debezium User Guide.
When Oracle is configured to use EXTENDED string sizes, LogMiner can sometimes fail to escape single quotes within extended string fields. As a result, values of these fields can be truncated, resulting in invalid SQL statements, which the Oracle connector is unable to parse.
For more information, see DBZ-8034.
To mitigate this problem, you can configure the connector to relax single-quote detection by setting the following property to true
:internal.log.mining.sql.relaxed.quote.detection
Although this internal setting might help to resolve some instances of the problem, its use is not currently a supported feature.
1.4.3.5. Use of XML data types with the Oracle connector (Technology Preview)
The Debezium Oracle connector can process the XMLType
data type that Oracle uses for handling XML data in the database.
For information about the mappings that the connector uses for the Oracle XMLTYPE, see XML types in the connector documentation.
1.4.3.6. Support for PostgreSQL 17 failover replication slots (Technology Preview) (DBZ-8412)
PostgreSQL 17 adds support for failover slots, which are replication slots that are automatically synchronized to a standby server.
When you create a replication slot on the primary PostgreSQL server in a cluster, you can configure it to be replicated to a failover replica. A PostgreSQL administrator can then manually synchronize failover replication slots by calling the pg_sync_replication_slots()
function, or can configure automatic synchronization by setting the value of the sync_replication_slots
parameter to true
. When automatic synchronization is enabled, if a failover occurs, Debezium can immediately switch over to consuming events from the failover slot on the replica, and thus not miss any events.
To enable Debezium to consume events from a failover slot, set the value of the slot.failover
property in the Debezium PostgreSQL connector configuration to true
. This feature is available only if you configure Debezium to connect to the primary server in a cluster that runs PostgreSQL 17 or greater. Failover replication slots are not created for databases that run earlier PostgreSQL releases.
For more information, see Supported topologies and slot.failover
in the Debezium PostgreSQL connector documentation.
1.4.3.7. CloudEvents converter (Technology Preview)
The 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. For more information, see CloudEvents converter.
1.4.3.8. Custom converters (Technology Preview)
In cases where the default data type conversions do not meet your needs, you can create custom converters to use with a connector. For more information, see Custom-developed converters.
1.4.4. Developer Preview features
The following Developer Preview features are available in Debezium 3.0.8:
- Section 1.4.4.1, “Debezium Server (Developer Preview)”
- Section 1.4.4.2, “Informix source connector (Developer Preview)”
- Section 1.4.4.3, “MongoDB connector Developer Preview features”
- Section 1.4.4.4, “MariaDB and MySQL connector Developer Preview features”
- Section 1.4.4.5, “Oracle connector Developer Preview features”
- Section 1.4.4.6, “PostgreSQL connector Developer Preview features”
Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview software for production or business-critical workloads. Developer Preview software provides early access to upcoming product software in advance of its possible inclusion in a Red Hat product offering. Customers can use this software to test functionality and provide feedback during the development process. This software might not have any documentation, is subject to change or removal at any time, and has received limited testing. Red Hat might provide ways to submit feedback on Developer Preview software without an associated SLA.
For more information about the support scope of Red Hat Developer Preview software, see Developer Preview Support Scope.
1.4.4.1. Debezium Server (Developer Preview)
This release continues to make the Debezium Server available as a Developer Preview feature. The Debezium Server is a ready-to-use application that streams change events from a data source directly to a configured Kafka or Redis data sink. Unlike the generally available Debezium connectors, the deployment of Debezium Server has no dependencies on Apache Kafka Connect. For more information about the Debezium Server Developer Preview, see the Debezium User Guide
1.4.4.2. Informix source connector (Developer Preview)
A Debezium source connector for Informix is now available as a Developer Preview feature.
The Debezium Informix source connector captures row-level changes from tables in an IBM Informix database. The connector is based on the Debezium Db2 connector, and uses the Informix Change Data Capture API for Java to capture transactional data. This API captures data from the current logical log and processes transactions sequentially.
The connector is compatible with Informix Database 12 and 14, and with version 4.50.11 of the Informix JDBC driver.
Due to licensing requirements, the Debezium Informix connector archive does not include the Informix JDBC driver or the Change Stream client that Debezium requires to connect to an Informix database. Before you can use the connector, you must obtain the driver and the client library and add them to your connector environment.
Prerequisites
- A database administrator must enable full row logging for the database and otherwise prepare the database and the database server for using the Change Data Capture API.
- You have a copy of the Informix JDBC driver in your connector environment. The driver is available from Maven Central.
-
You have installed the Informix Change Streams API for Java.
The Change Streams API for Java is packaged as part of the Informix JDBC installation, and is also available on Maven Central alongside the latest JDBC drivers. The API is required to enable CDC on the database.
Additional resources
- Preparing to use the Change Data Capture API (IBM Informix documentation).
- Debezium Informix connector documentation (debezium.io community edition).
1.4.4.3. MongoDB connector Developer Preview features
1.4.4.3.1. MongoDB sink connector (Developer Preview)
This release introduces a MongoDB sink connector implementation. The Debezium MongoDB sink connector differs from other vendor implementations in that it can ingest raw change events emitted by Debezium connectors without first applying an event flattening transformation. The MongoDB sink connector can take advantage of native Debezium source connector features, such as column type propagation, enabling you to potentially reduce the processing footprint of your data pipeline, and simplify its configuration.
Unlike the JDBC sink relational connector that requires an additional plug-in to be installed to use it, the MongoDB sink connector is bundled alongside the MongoDB source connector in the same artifact. So if you install the Debezium 3.0.8 MongoDB source connector, you also have the MongoDB sink connector.
Minimal configuration is required to get started with the MongoDB sink connector, for example:
{ "connector.class": "io.debezium.connector.mongodb.MongoDbSinkConnector", "connection.string": "...", "topics": "topic1,topic2", "sink.database": "targetdb" }
The following configuration properties are mandatory:
| Provides the details for connecting to the MongoDB sink database. |
| Provides the name of the target database where the changes will be written. |
| Specifies a comma-separated list of regular expressions that describe the topics from which the sink connector reads event records. |
Documentation for this connector is under development.
1.4.4.4. MariaDB and MySQL connector Developer Preview features
1.4.4.4.1. MySQL parallel schema snapshots (Developer Preview) (DBZ-6472)
The ability to use parallel schema snapshots with the MySQL connector continues to be provided as a Developer Preview feature.
To improve snapshot performance, the MySQL connector implements parallelization to concurrently snapshot change events and generate schema events for tables. By running snapshots and generating schema events in parallel, the connector reduces the time required to capture the schema for many tables in your database.
1.4.4.4.2. MariaDB and MySQL parallel initial snapshots (Developer Preview)
The Debezium initial snapshot for MySQL has always been single-threaded. This limitation primarily stems from the complexities of ensuring data consistency across multiple transactions.
In this release, you can configure a MySQL connector to use multiple threads to execute table-level snapshots in parallel.
In order to take advantage of this new feature, add the snapshot.max.threads
property to the connector configuration, and set the property to a value greater than 1
.
Example 1.1. Example configuration using parallel snapshots
snapshot.max.threads=4
Based on the configuration in the preceding example, the connector can snapshot a maximum of four tables at once. If the number of tables to snapshot is greater than four, after a thread finishes processing one of the first four tables, it then finds the next table in the queue and begins to perform a snapshot. The process continues until the connector finishes performing snapshots on all of the designated tables.
For more information, see snapshot.max.threads
in the Debezium User Guide.
1.4.4.5. Oracle connector Developer Preview features
1.4.4.5.1. Ingesting changes from a logical standby (Developer Preview)
The ability for the Oracle connector to capture changes from a logical standby continues to be available as a Developer Preview feature. When the Debezium connector for Oracle connects to a production or primary database, it uses an internal flush table to manage the flush cycles of the Oracle Log Writer Buffer (LGWR) process. The flush process requires that the user account through which the connector accesses the database has permission to create and write to this flush table. However, logical stand-by databases often have restrictive data manipulation rules, and may even be read-only. As a result, writing to the database might not be feasible.
To support an Oracle read-only logical stand-by database, Debezium introduces a property to disable the creation and management of the flush table. You can use this feature with both Oracle Standalone and Oracle RAC installations.
To enable the Oracle connector to use a read-only logical stand-by, add the following connector option:
internal.log.mining.read.only=true
For more information, see the Oracle connector documentation in the Debezium User Guide.
1.4.4.6. PostgreSQL connector Developer Preview features
1.4.4.6.1. Exactly-once delivery for PostgreSQL streaming (Developer Preview)
In this release, Debezium continues to provide exactly-once semantics for the PostgreSQL connector as a Developer Preview feature. Exactly-once delivery for PostgreSQL applies only to the streaming phase; exactly-once delivery does not apply to snapshots.
Debezium was designed to provide at-least-once delivery with a goal of ensuring that connectors capture all change events that occur in the monitored sources. In KIP-618 the Apache Kafka community proposes a solution to address problems that occur when a producer retries a message. Source connectors sometimes resend batches of events to the Kafka broker, even after the broker previously committed the batch. This situation can result in duplicate events being sent to consumers (sink connectors), which can cause problems for consumers that do not handle duplicates easily.
No connector configuration changes are required to enable exactly-once delivery. However, exactly-once delivery must be configured in your Kafka Connect worker configuration. For information about setting the required Kafka Connect configuration properties, see KIP-618.
To set exactly.once.support
to required
in the Kafka worker configuration, all connectors in the Kafka Connect cluster must supports exactly-once delivery, If you attempt to set this option in a cluster in which workers do not consistently support exactly-once delivery, the connectors that do not support this feature fail validation at start-up.
1.4.5. Other updates in this release
This Debezium 3.0.8 release provides multiple other feature updates and fixes. For a complete list, see the Debezium 3.0.8 Enhancement Advisory (RHEA-2025:147677).
1.5. Deprecated features
The following features are deprecated and will be removed in a future release:
- Deprecation of schema_only and schema_only_recovery snapshot modes
-
The
schema_only_recovery
mode is deprecated and is replaced by therecovery
mode. -
The
schema_only
mode is deprecated and is replaced by theno_data
mode.
-
The
The current release continues to include the deprecated snapshot modes, but they are scheduled for removal in a future release. To prepare for their removal, adjust any scripts, configurations, and processes that depend on these deprecated modes.
For information about features that were deprecated in the previous release, see the 2.7.3 Release Notes
1.6. Known issues
The following known issues are present in Debezium 3.0.8:
- Parallel initial snapshot exception when snapshot for one table is slow (DBZ-7932)
-
In some environments, failures can occur when a SQL-based connector is configured to run parallel initial snapshots. This occurs because the time required to complete a snapshot for one table is significantly greater than the time required to complete snapshots for other tables. As a result, the threads for the completed snapshots remain idle for an extended interval, so that the connector is unable to gracefully close the connection. The inability to close the connection can result in an incomplete snapshot, even if all data is sent successfully. Environments are more susceptible to this problem if they include a network device that terminates idle connections to the database, such as a load balancer or firewall.
If you experience this problem, by reverting the value ofsnapshot.max.threads
to1
. - Negative binlog position values for MariaDB (DBZ-8755)
-
A new binary log format was introduced in MariaDB 11.4. Debezium cannot consume events in this new format. If Debezium connects to a database that runs MariaDB 11.4 or later, you must set the MariaDB server variable
binlog_legacy_event_pos
to1
(ON) to ensure that the connector can consume events in the new format. If you leave this variable at its default setting (0
, or OFF), after a connector restart, Debezium might not be able to find the resume point. - Apicurio registry endless rebalance loop on Kafka
- For more information, see Apicurio registry 2.4.3 and 2.4.4 causes endless rebalance loop on Kafka