背景:
MySQL数据库的架构是一主(A)两备(B、C),整套架构都已经启用GTID 模式,MySQL 版本5.7
备库B当前的binlog文件号是 mysql-bin.022043
备库C当前的binlog文件号是 mysql-bin.022003
两个备库都和主库保持数据同步,无延迟。
flink cdc接入备库B,通过拉取b该库inlog实时采集数据流到kafka,待下游消费使用
当备库B不可对外提供服务器, 需要把flink 采集任务切到备库C,这时候flink会报找不到binlog的错误:
2024-04-09 19:09:37,005 INFO com.ververica.cdc.connectors.mysql.debezium.task.context.StatefulTaskContext [] - Connector requires binlog file 'mysql_bin.022043', but MySQL only has mysql_bin.021983, mysql_bin.021984, mysql_bin.021985, mysql_bin.021986, mysql_bin.021987, mysql_bin.021988, mysql_bin.021989, mysql_bin.021990, mysql_bin.021991, mysql_bin.021992, mysql_bin.021993, mysql_bin.021994, mysql_bin.021995, mysql_bin.021996, mysql_bin.021997, mysql_bin.021998, mysql_bin.021999, mysql_bin.022000, mysql_bin.022001, mysql_bin.022002, mysql_bin.022003
2024-04-09 19:09:37,006 ERROR org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherManager [] - Received uncaught exception.
java.lang.RuntimeException: SplitFetcher thread 0 received unexpected exception while polling the records
就是已经启用了GTID,再验证备库C文件号呢,实际中可能每个备库binlog保留策略受本地磁盘空间大小影响会有差异,向我们这个案例中就比较大的差异。
类似这种情况咋解决的呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。