校验表中数据和索引一致性异常

【 TiDB 版本】
v7.5.4
【遇到的问题:问题现象及影响】
我使用 ADMIN CHECK 校验表中数据和对应索引的一致性时,提示 es_charge_owner_fee_index1索错误: data inconsistency in table: es_charge_owner_fee, index: es_charge_owner_fee_index1, handle: { ,然后我重建该索引,再次执行 ADMIN CHECK ,提示 es_charge_owner_fee_index7 索引错误,我又删除es_charge_owner_fee_index7重建,再次执行 ADMIN CHECK,他又再次提示我es_charge_owner_fee_index1 索引错误。

表中数据有 2千多万行

表结构和索引信息如下图


把报错索引挨个删除重建试试

他报错 第 1 个索引错误,我重建了,他说第 7 个错误,我又重建了。然后他又说第 1 个错误,这怎么搞。

新建个表,分批把数据插入新表,删旧表,新表重命名为旧表

这个版本可能是这个 bug, tidb
new_collations_enabled_on_first_bootstrap,tidb_ddl_enable_fast_reorg确认下两个参数是不是 on,还有对应列应该不是默认的 collate 吧?

看 bug report的话,确实有问题.
new_collations_enabled_on_first_bootstrap 这个肯定是 true,没有修改过,默认是true, tidb_ddl_enable_fast_reorg 这个是 on。

得看下数据是怎么写到表里的,如果是业务正常写入的话基本不会出现这种情况。

以前是mysql数据库中的数据,后来迁移到 tidb中的,后续又有数据的写入。
但是你看上面的兄弟发的呢 。 bug report

如果对应列collate 都是非 utf8mb4_bin 的话,大概率就是这个 bug 了。
workaround:可以关掉 tidb_ddl_enable_fast_reorg
或者升级到 7.5.5 版本已经修复了这个问题。

bug 描述的场景是多值索引,你这出问题的索引 1 和 7 都是单值索引,感觉不太像。

看下面的 comment

我 review 了下,如果后续升级你用 ticdc 的话,别升级 7.5.5 了吧。7.5.5 有个 cdc 的 较为严重的 bug :sweat:,等 7.5.6 吧,应该比较快就能发版了

哦哦 看到了,大佬。我这 comment 被折叠了 :grimacing:

好的,谢谢。 :100:

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