首页 > 解决方案 > Debezium MySQL (MariaDB) 连接器:如何从以前的 bin-log 文件位置恢复

问题描述

我正在使用Debezium-connector-mysql-0.7.5-plugin为 CDC 连接 MariaDB v10.0.32。CDC 记录保存在 HDFS 中以供进一步处理。一切都很完美,直到出现以下情况:

  1. 停止连接
  2. 完全停止卡夫卡
  3. 停止 MariaDB 服务器

从CDC Records可以看出,最新处理的bin log坐标如下:

File : mysql-bin.000008
Position: 2155

由于上述行为,我面临以下后果:

  1. MariaDB 在重启期间轮换它的 bin 日志,当前状态如下

    +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000009 | 326 | | | +------------------+----------+--------------+------------------+

  2. 我之前注册的 Debezium 连接器在新启动的 Kafka 中不再可用

在这种情况下,如果我从头开始,连接器将通过以下操作获取初始快照:

  1. 放置锁然后从所有表中读取数据
  2. 完成后,它开始读取最新的 bin 日志文件,即 mysql-bin.000009

考虑到我的情况,有没有办法指示 Debezium 从 mysql-bin.000008 - 位置 2155 恢复其操作并绕过初始快照。

在此先感谢您的帮助。

标签: apache-kafka-connectcdcdebezium

解决方案


您可以尝试在 Connect 的偏移主题中插入一条记录,表示您想继续的位置。但在这种情况下,我真的不建议这样做,因为您会在连接器离开的时间和日志轮换时间之间丢失事件。因此,确实拍摄新快照会更安全。


推荐阅读