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

总共有 15 个问题 在 Debezium 3.2.4.Final 中得到解决。更改列表也可以在我们的发布说明中找到。

非常感谢社区中所有辛勤工作的贡献者为这个版本付出的努力
Alvar Viana Gomez, Alvar Viana, Chris Cranford, Guangnan Shi, Jiri Pechanec, Mario Fiore Vitale, René Kerner, Robert Roldan, Sergei Nikolaev, Vojtech Juranek, and leoloel

Chris Cranford

Chris 是 IBM 的一名软件工程师,之前在 Red Hat 工作,他致力于 Debezium 项目,并每天都在深入研究 Oracle 和 Change Data Capture 的各个方面。他此前曾从事 Hibernate(领先的开源 JPA 持久化框架)方面的工作,并且继续为 Quarkus 做贡献。Chris 居住在美国北卡罗来纳州。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×