MySQL Debezium开云体育官方注册网址连接器的用户告诉我们,连接器的内部数据库历史主题的配置存在潜在问题,这可能会导致该主题的某些部分被删除(开云体育电动老虎机dbz - 663).如果您正在使用0.7.3或0.7.4版本的Debezium MySQL连接器,请继续阅读开云体育官方注册网址。

这个问题是关于什么的?

在De开云体育官方注册网址bezium 0.7.3中,我们推出了一个功能,可以自动创建数据库历史,如果它还不存在的话(开云体育电动老虎机dbz - 278).虽然这个特性将主题的保留时间设置为“无限”周期,但它没有指定“保留时间”。选项的历史主题。在满足以下所有条件的情况下,这可能会导致部分历史主题被删除:

  • 您使用的是MySQL的Debezium连接器的0.7.3或0.7.4版本开云体育官方注册网址

  • 数据库历开云体育电动老虎机史主题已经由连接器创建(即您没有自己创建它)

  • 代理级别的选项“log.retention。Bytes”被设置为除-1之外的另一个值(请注意,默认值为-1,在这种情况下,事情会按照预期工作)

  • 数据库历开云体育电动老虎机史主题增长超过通过"log.retention.bytes"配置的阈值

如果历史主题不完整,连接器在重新启动连接器后将无法恢复数据库历史,并且不会继续读取MySQL binlog。开云体育电动老虎机

如何预防这个问题?

您应该自己创建具有无限保留的数据库历史主题,或者重写“保留开云体育电动老虎机”。连接器创建的历史主题的Bytes配置:

/bin/kafka-config .sh \——zookeeper zookeeper:2181 \——entity-type topics \——entity-name  \——alter \——add-config retention.bytes=-1

如果已经删除了部分历史主题,则可以使用快照模式schema_only_recovery用于重新创建历史主题,以防自连接器的最后一次提交偏移量以来没有发生模式更改。或者,应该拍摄一个完整的新快照,例如通过设置一个新的连接器实例。

下一个步骤

我们将在下周初发布Debez开云体育官方注册网址ium 0.7.5,修复这个问题。注意,以前创建的数据库历史主题应该如上所述重新配置。开云体育电动老虎机如果你对这个问题有任何进一步的问题,请不要犹豫,在下面的评论中与我们联系,聊天室或邮件列表。

贡纳Morling

Gunnar是Decodable的软件工程师,也是一名不折不扣的开源爱好者。多年来,他一直是Debezium的项目负责人。开云体育官方注册网址Gunnar创建了kcctl、JfrUnit和MapStruct等开源项目,并且是Bean验证2.0 (JSR 380)的规范负责人。他在德国汉堡工作。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

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

Baidu
map