mysql迁移tidb

这个可能会有,但是总行数查了5W多,应该不是把

有相应的版本。

有主键或ID之类的列吗?跑个distinct 看看是否一样,或者找数字列,直接求和

mysql的表有主键,主键时自增的

有数字列吗?求个和看看是否一样

主键时自增的啊,直接count(1) 可以吗?

我的意思是,你count出来已经不一致,但首尾的数据行确能对齐,可以用sum先看看两边是否一致;
不一致的话,再找唯一度比较高的列,用count distinct 筛选一遍,看看是否一致;
distinct 不一致,说明有额外插入的数据;
distinct 一致,说明重复导入了,再用having筛出重复的

有自增主键还会多?看下两边范围,或者细分区间,看看哪个区间数据异常

头像不错 :smiley:


会不会是自增主键的原因?多的数据哪来的呢

如果实在找不到方法,dm 全量迁移有问题可以使用,dumping+lighting导入,然后增量同步看看

先查明哪些数据是重复的。甄别下。出现问题的原因是 人为的还是工具导致。 检查下配置文件,可以搞个测试表试试。

1 个赞

先比对下哪些数据多了吧,看看这些数据在上游是啥样的。

可以使用如下工具对比下数据https://docs.pingcap.com/zh/tidb/stable/sync-diff-inspector-overview,如果有不同的数据,分析下是否迁移过程中增加或减少的。

可以大,但行不不能多。弄个小表试下

用了一个小表测试了,突然发现,如果上游进行删除后,在进行添加,下游tidb是不是有数据的,但是我的同步是全量加增量,不知道为什么没同步上

神奇了哈

刚才测试的,不知道为什么,感觉是因为热同步的问题吧…最好还是数据不要进行删除

可以检查下上游mysql是否有外键,有外键的情况下:mysql有外键的表进行删除操作时会触发外键删除,但是binlog中不记录外键删除行,DM也就无法将将操作同步到下游TiDB,下游TiDB也不支持外键。结果就是上游删除了数据,下游TiDB外键数据还存在。

哦哦,还有这个呢,都忘了

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。