DM同步分表数据,数据不一致问题

【 TiDB 使用环境】
TiDB: V5.0.3
DM:V2.0.4

【概述】 问题概述
问题:

迁移共12类分表,在MySQL中,每类分表共12张,表名:table_name_00–11,同步数据从MySQL到TiDB,数据量:100G左右
迁移结果,其中有六张表的数据一致,另六张表的数据不一致,同步正常

日志请发一下,顺便在问下 如何确定的不一致?

1.通过select count(*)两边的数据,发现不一致
2.通过select 关键字,发现在MySQL中存在一条数据,在TiDB中不存在这条数据,是一条历史数据,不是当前最新数据

迁移过程是如何做的?

配置DM,启动DM,全量和增量都是通过DM同步的,没有其它的操作。

请把日志发一下。

都是一些现象描述,无法进行判断。

首先确认下你这边同步采用 pos 还是 GTID 同步,如果是 pos 同步,2.0.4 版本有 bug 可能会导致数据丢失。在 2.0.5 修复。如果是 GTID 方式同步,那么是未知的情况,需要提供一些信息

1.DM 的拓扑
2.task 的完整配置
3.你这边是否可以确认是 load 阶段数据丢失还是 sync 阶段数据丢失的?
4.是否有开启 relay_log?
5.麻烦提供下 DM-worker 的完整日志

task_beta.yaml (7.2 KB)

1.DM 的拓扑
10.68.4.88:8261
10.68.4.89:8261
10.68.4.88:8262
10.68.4.89:8262

2.见附件

3.确认丢失的数据是20210112的数据,应该是load阶段

4.开启 relay_log,这个是在哪配置开启呢,没有配置过

5.见附件

我在那个dm-worker 目录下 dumped_data中,找到对应的表的数据sql中,发现有对应的那条缺少的数据。
但是就是在TiDB的库里,没有这条数据。

注意到您配置跳过了 auto_increment_ID。如果分表之间 increment ID 重复会导致写入数据相互覆盖

不会啊,每张表还有一个,几个字段组合的唯一索引的,这个唯一索引是全局唯一的。

你这个 task name 脱敏了,无法从日志中确认,而且你这个 task 配置有问题,分库分表合并和非分库分表的都写在一个 task 里面了。请将分库分表合并的情况和 非分库分表的情况拆开成多个 task 进行同步。
image

bfas-beta

已经给过建议了哈

还是不一致

问题已解决,关闭。