xa事物不支持,同步时报错,能否将xa语句转换

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0.12
【问题描述】
数据迁移时针对tidb数据库不支持xa事物,目前采用忽略这些语句,想问下有没有功能可以将xa语句转换成普通的commit与rollback


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

对于上游不支持的语句,目前都是通过配置 binlog event filter 来忽略,忽略 xa 事务的语句是仍然不满足迁移时的需求么,能否描述下具体的场景,比如转成 commit 和 rollback 是根据什么逻辑去转换

我意思是上游sql rollback了,但是下游tidb却没有rollback而是忽略了,这就导致下游数据的不准确,我意思能否将xa rollback直接转成rollback这样就可以保证数据一致了。

  1. XA 目前都是配置的忽略,所以这些还是需要上游业务尽量避免 XA 的影响。 配置可以参考之前的帖子
    dm-worker任务报错求解
  2. 如果需要某些特性,建议您可以提交需求到对应版块试试,多谢。

@simple-hx 请问一下你这边已经在使用 dm 中遇到 rollbacked 的 XA 事务被同步到了下游 TiDB 吗?

谢谢回复

暂时还在同步中,晚点手动触发一次看看结果,到时候再来跟进

有进展及时反馈到群里 感谢 ~

下图为一个xa语句,执行了回滚语句
image

源数据库无3这条数据
image

目标tidb却有该条数据
image

是通过 DM 工具从 MySQL 同步数据到 TiDB 么?
使用的 DM 工具是什么版本的?

嗯,是从mysql迁移到tidb-4.0.12
dm使用最新版本2.0.3

请问mysql 是什么版本? 是否开启了gtid?