FlinkCDC中使用 mysql-cdc 2.3.0的版本指定binlog位置读取报错,什么原因?

Flink CDC中使用 mysql-cdc 2.3.0的版本,指定binlog位置读取,确实读到数据,但几分钟后,报错说binglog已经在server端不存在了,但是已经去mysql查看了,binlog文件确实是存在,这个是什么原因?主从mysql, 从库mysql读的
Caused by: java.lang.IllegalStateException: The connector is trying to read binlog starting at Struct{version=1.6.4.Final,connector=mysql,name=mysql_binlog_source,ts_ms=1690973099526,db=,server_id=0,file=mysql-bin-changelog.308529,pos=32011538,row=0}, but this is no longer available on the server. Reconfigure the connector to use a snapshot when needed.

展开
收起
十一0204 2023-08-09 09:06:29 222 分享 版权
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    这个问题可能是由于以下原因导致的:

    Binlog文件被清理:MySQL服务器中的Binlog文件可能已经被清理。MySQL服务器会定期清理旧的Binlog文件,以释放磁盘空间。当Flink CDC尝试读取Binlog时,如果指定的Binlog文件已经被清理,就会出现您遇到的错误。您可以检查MySQL服务器的配置,以查看Binlog文件的保留策略和清理频率,确保它们与您的需求相匹配。

    CDC连接中断:在Flink CDC连接到MySQL服务器的过程中,可能发生了连接中断或网络问题,导致连接断开。当连接断开后重新连接时,之前的Binlog文件可能已经被清理,因此会出现报错。您可以检查网络连接是否稳定,并确保Flink CDC与MySQL服务器之间的连接没有断开。

    Flink CDC配置问题:Flink CDC的配置可能存在问题,导致无法正确读取Binlog文件。请确保Flink CDC的配置正确,并检查是否正确指定了要读取的Binlog文件位置。在报错信息中提到了重新配置Connector以使用快照(snapshot),这可能是指在无法读取指定的Binlog文件时,尝试使用数据库的快照数据进行处理。您可以按照报错信息中的建议,尝试配置Flink CDC以使用快照。

    针对这些问题,您可以尝试以下解决方案:

    确保MySQL服务器的Binlog文件保留策略与您的需求相匹配,并且没有过于频繁的清理操作。

    检查网络连接是否稳定,并确保Flink CDC与MySQL服务器之间的连接没有断开。

    检查Flink CDC的配置,确保指定的Binlog文件位置正确,并尝试配置Flink CDC以使用快照数据。

    2023-08-11 21:25:38
    赞同 展开评论
  • 意中人就是我呀!

    "那你需要开mysql集群开启gitd。开启gtid才能保证主从的binlog是一样的。5be3fad69f7eb3eec8d95cb3455ba3f6.png
    此回答整理至钉群“Flink CDC 社区”。"

    2023-08-09 12:02:01
    赞同 展开评论

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

还有其他疑问?
咨询AI助理