Kongdom
(Kongdom)
1
【 TiDB 使用环境】测试
【 TiDB 版本】v6.5.0
背景:集群开始是v6.1.0版本,使用v5.4版本的备份指定库还原数据后,升级到了v6.5.0版本。
执行下列语句报错:SQL 错误 [1105] [HY000]: runtime error: index out of range [976] with length 971
最开始的时候,两句都报错,执行analyze table之后,只有第二句报错了。如何排查?
执行ADMIN CHECK TABLE tbs_d_cust_consume_target_cust后报错
index: PRIMARY, handle: 30186, index-values:“handle: 30186, values: [KindString 8 KindMysqlTime 2022-06-23 00:00:00 KindString 11001 KindString 会员卡 KindString VIP KindInt64 30186]” != record-values:“”
Kongdom
(Kongdom)
8
我也觉得有可能是。不过也可能是备份还原的问题,我跨大版本做的备份还原。
db_user
(Db User)
10
类似的bug遇到过好多。调整执行计划或许能调整过来
out of range 的 bug 在 6.5 还没消除吗?我记得 2.x 就有了
Kongdom
(Kongdom)
14
果然报错了
#### Error 8223
`ERROR 8223 (HY000): data inconsistency in table: t2, index: i1, handle: {hello, hello}, index-values:"" != record-values:"handle: {hello, hello}, values: [KindString hello KindString hello]"`
上述错误表明,`index-values` 为空,`record-values` 不为空,说明不存在对应的索引,但存在对应的行。
aytrack
(Aytrack)
16
这个数据是有复现步骤了么?
使用新建的表及数据可以复现么
1、admin check说明索引和数据不一致
2、可能导致这种情况的原因有很多,比如老版本中如果开启batch dml,可能会导致此问题。
3、通常删除索引重新创建可以解决该问题
4、analyze table之后不报错的原因,可能是执行计划发生改变,没有走上有问题的索引
Kongdom
(Kongdom)
关闭
19
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。