Debezium MySQL (MariaDB) 连接器:如何从以前的 bin-log 文件位置恢复
Posted
技术标签:
【中文标题】Debezium MySQL (MariaDB) 连接器:如何从以前的 bin-log 文件位置恢复【英文标题】:Debezium MySQL (MariaDB) connector : How to resume from a previous bin-log file position 【发布时间】:2018-11-30 09:18:47 【问题描述】:我正在使用 Debezium-connector-mysql-0.7.5-plugin 为 CDC 连接 MariaDB v10.0.32。 CDC 记录保存在 HDFS 中以供进一步处理。一切都很完美,直到出现以下情况:
-
停止连接
完全停止 Kafka
已停止 MariaDB 服务器
从CDC Records可以看出,最新处理的bin log坐标如下:
File : mysql-bin.000008
Position: 2155
由于上述行为,我面临以下后果:
MariaDB 在重启期间轮换它的 bin 日志,当前状态如下所示
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 | 326 | | |
+------------------+----------+--------------+------------------+
在这种情况下,如果我从头开始,连接器将通过以下操作拍摄初始快照:
-
放置锁,然后从所有表中读取数据
一旦完成,它就会开始读取最新的 bin 日志文件,即 mysql-bin.000009
考虑到我的情况,有没有办法指示 Debezium 从 mysql-bin.000008 - 位置 2155 恢复操作并绕过初始快照。
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:您可以尝试在 Connect 的偏移主题中插入一条记录,表示您想继续的位置。但在这种情况下,我真的不建议这样做,因为您会在连接器离开的时间和日志轮换时间之间丢失事件。因此,确实拍摄新快照会更安全。
【讨论】:
【参考方案2】:据我尝试,您无法重置 debezium 的 binlog 文件名和位置。
【讨论】:
以上是关于Debezium MySQL (MariaDB) 连接器:如何从以前的 bin-log 文件位置恢复的主要内容,如果未能解决你的问题,请参考以下文章
Debezium - MySQL 连接器 - Kinesis - 服务未启动
如何为 mysql 数据库创建多个 Debezium 连接器