开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink cdc接入备库B,类似这种情况咋解决的呢?

背景:
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保留策略受本地磁盘空间大小影响会有差异,向我们这个案例中就比较大的差异。

类似这种情况咋解决的呢?

展开
收起
真的很搞笑 2024-04-14 19:04:04 35 0
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载