DM同步报错问题

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
TiDB v4.0.13
DM v2.0.3

【概述】 场景 + 问题概述
DM创建数据源和task都是正常的,但是task运行过程中source会报错,数据依然在同步
image

这个可能是什么问题。

【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1赞

这个是 DM 内部在上游执行 SHOW MASTER STATUS 的时候报错的,请问您的上游是什么数据库,手动执行一下 SHOW MASTER STATUS 是什么结果呢

1赞

任务进度到99.5%后报错暂停了

1赞

能把报错信息文本形式发一下吗

请问您的上游是什么数据库

文本形式弄不下来

是mysql的,截图里面有版本信息

不是MySQL,version信息里面有baixin-1.0.0.10的字样。因为一些信息与标准的MySQL不一样导致dm报错了

现在有什么解决方案吗

先搞清楚您的上游是什么数据库,是安装的官方MySQL还是某个发行版、某个兼容MySQL的数据库

是在mysql5.6版本上改过的,这个影响大么

是你们自研的吗,厉害

目前能看到两个问题

  1. SHOW MASTER STATUS 多了三列,DM 目前没考虑到这个场景
  2. 增量阶段写 binlog 写的不对,不符合 binlog 协议。DM 没法支持不符合 MySQL 标准的 binlog

如果是这样的话,我把TiDB里的数据用binlog写回到这个版本mysql能实现吗

目前遇到的问题都关于从这个MySQL数据流出。同步回MySQL还没有信息可以判断

好的,感谢解答:+1:

:call_me_hand::call_me_hand::call_me_hand::smile::smile::smile:

再问一下,有没有办法知道DM对这个版本mysql的binlog具体哪些不支持

这个只能看到解析到第多少字节报错了,您可以试试用原生的binlog解析工具对比一下,如果发现原生工具不报错,但是dm无法同步,也请告诉我们

1赞

估计是账号权限问题,用mysqlbinlog定位报错语句,用同步账号在上游运行该语句看看,不过二开确实好牛啊