Flink CDC用2.2.1的时候,系统会偶尔报这个错误?
binlog为row的形式,这个有解决办法吗?1到2个月就会报错一遍
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的问题描述,Flink CDC在使用2.2.1版本时,系统偶尔会报错“binlog probably contains events generated with statement or mixed based replication format”,即使Binlog格式已经设置为ROW形式,仍然会出现该问题。以下是详细的分析和解决方案:
Binlog格式不一致
尽管您已将Binlog格式设置为ROW,但MySQL服务器可能在某些情况下生成了非ROW格式的事件(例如Statement或Mixed格式)。这可能是由于以下原因:
CDC作业读取Binlog的速度较慢
如果CDC作业处理Binlog的速度较慢,可能导致读取到过期的Binlog文件,而这些文件中可能包含非ROW格式的事件。
MySQL服务器清理Binlog文件
MySQL服务器上的Binlog文件保留时间较短,可能导致CDC作业在重新启动时无法找到所需的Binlog文件,从而引发类似错误。
SHOW VARIABLES LIKE 'binlog_format';
ROW
,请将其设置为ROW格式:
SET GLOBAL binlog_format=ROW;
SHOW SESSION VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'expire_logs_days';
SET GLOBAL expire_logs_days=7;
'debezium.event.deserialization.failure.handling.mode' = 'warn'
通过以上步骤,您可以有效解决“binlog probably contains events generated with statement or mixed based replication format”报错问题。重点在于确保Binlog格式全局生效、增加Binlog保留时间、提升CDC作业性能以及合理配置Debezium参数。如果问题仍然存在,建议进一步排查MySQL实例的配置和网络环境。
希望以上内容对您有所帮助!您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。