Debezium 3.2.4.Final 现已发布,包含对 Oracle 连接器用户的重要的修复和对多个数据库连接器的稳定性改进。
在本文中,我们将深入探讨 Debezium 几个关键模块的改进,讨论任何新功能,并解释可能影响您升级过程的任何更改。一如既往,我们建议您阅读发布说明,以了解所有已修复的错误、更新说明等。
重大变更
任何新发布的软件都可能包含一些破坏性更改。本次发布也不例外,因此在升级到 Debezium 3.2.4.Final 之前,让我们讨论一下您应该了解的主要更改。
Db2 偏移量位置验证不可靠
由于 Db2 中偏移量位置验证的可靠性问题,我们已暂时禁用验证以防止错误失败(DBZ-9470)。因此,目前无法为 Db2 连接器使用 when_needed 快照模式。
影响:如果您正在使用 when_needed 快照模式与 Db2,您将需要使用替代模式,直到此限制在未来的版本中得到解决。
新功能和改进
让我们来介绍一下 3.2.4.Final 中一些值得注意的改进和更改。
Oracle 事件被错误地跳过
我们在 Debezium 3.2.3.Final 中引入了DBZ-8060,但该问题不幸地导致了启用 Oracle 连接器 LOB 捕获支持的用户出现回归。这种情况导致连接器报告事务的部分内容被跳过。得益于 Debezium 社区的迅速行动,这一回归问题已被报告并在 Debezium 3.2.4.Final 中修复(DBZ-9521)。
对于 Oracle 用户来说,如果您正在升级,请务必避免使用 3.2.3.Final,如果您打算使用 Debezium 3.2,请考虑迁移到 3.2.4.Final。
Oracle XStream 不再刷新无效的低水位标记
Debezium Oracle XStream 实现必须定期将 LCR 位置刷新到 Oracle Outbound Server。此刷新作为对 Oracle 的一种提示,表明该位置之前的所有更改都已处理完毕,类似于 PostgreSQL 向复制槽确认 LSN 的方式。
以前,由于偏移量刷新处理方式的原因,Oracle Outbound Server 在尝试刷新低水位标记时可能会错误地报告失败,将有效位置视为无效。此问题现已得到修复,Oracle Outbound Server 不再错误地报告无效的低水位标记位置(DBZ-8923)。
其他修复
-
在关闭时丢弃进程内批处理事务 DBZ-8060
-
跨两个查询提取的事务可能随机导致不支持的操作 DBZ-8747
-
Oracle 连接器重新选择异常处理(ORA-01555 + ORA-22924)DBZ-9446
-
在重新创建快照可调用表的列表时发生 OutOfMemory 异常 DBZ-9472
-
Debezium Server 对 SqlServer 源报告“AttributeNotFoundException QueueTotalCapacity”DBZ-9477
-
当列名包含反引号时,出现“未知列在 'field list' 中”DBZ-9479
-
MySQL 事件获取头信息时抛出 NullPointerException DBZ-9483
-
MySQL 示例容器镜像配置不正确 DBZ-9485
-
删除主键不会更改 Oracle 关系元数据 DBZ-9505
非常感谢社区中所有辛勤工作的贡献者为这个版本付出的努力
Alvar Viana Gomez, Alvar Viana, Chris Cranford, Guangnan Shi, Jiri Pechanec, Mario Fiore Vitale, René Kerner, Robert Roldan, Sergei Nikolaev, Vojtech Juranek, and leoloel!
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。