带回车换行内容的字段,DM同步失败

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.11 DM v1.0.3
  • 【问题描述】:

上游mysql5.6,创建一张临时表 tmp_xx(tips varchar(2048)),然后使用

insert into tmp_xx select tips from table where id = 1;

只有一行一列的记录,记录内容如下格式:

xxxxxxxx,xxxxxxxxxxxxx:

-xxxxxxxx:xxxxxxx

-xxxxxxxxx,xxx,xxx,(xxxx)

-xxxxxx

-xxxxxxxxxxxxxxxx

内容中带有回车换行,没有特殊字符,然后DM同步就中断了,查看日志如下

提示记录列数不匹配,然后解析relay-log目录下的binlog,发现确实一行一列记录被解析成两列了

请问这bug吗?

请问上游 MySQL 的具体版本以及运行环境,是否为某些云厂商提供过的修改版本。 从 mysql binlog 看就是有两列数据输出,上游数据库是否有隐藏列或者可能为上游输出 binlog 时的 bug。

解决了。

上游mysql是阿里云RDS,我创建的临时表,因为没有主键,RDS会主动添加一列隐藏主键。因此binlog中会出现两列。

要避免这种情况,主要就是mysql创建表时要规范,一定要有主键列,不能因为是临时表就不加。

:call_me_hand: