集群admin show ddl异常

【 TiDB 使用环境】测试
【 TiDB 版本】4.0.8
【复现路径】做过哪些操作出现的问题
集群最开始执行admin show ddl jobs和insert 提示:
Error 1105: tikv aborts txn: Txn(Mvcc(DefaultNotFound { key: [109, 68, 66, 58, 50, 57, 50, 52, 51, 255, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 104, 84, 97, 98, 108, 101, 58, 50, 57, 255, 50, 54, 56, 0, 0, 0, 0, 0, 250]
且执行create /drop 直接卡顿无法,重启tidb-server或新增节点无法启动,启动提示:

后对集群做过mvcc在线修复,修复到3个TIKV节点后,执行admin命令提示:
image
当前tidb-server提示:


对表写入提示数据库不存在,只能做select/update/delete无法insert
image
当前没有重启过的tidb-server日志:

【遇到的问题:问题现象及影响】
1、重启过tikv
2、MVCC在线修复
3、扩缩容tidb-server
【资源配置】
【附件:截图/日志/监控】

跟这个issue的现象倒是一致,但是上面貌似没有可规避的方案
pitr restore fail but report successfully · Issue #39920 · pingcap/tidb (github.com)
tidb meets error: ERROR 1008 (HY000): Can't drop database ''; database doesn't exist when dropping database · Issue #39606 · pingcap/tidb (github.com)
感觉可能统计信息或索引出现乱码。或者数据文件损坏了,可以试下重载某张表的统计信息看看会不会有效果

现在都没法操作DDL,create/drop 都直接卡顿

集群最早问题是,有个节点机器宕机了 ,半个月没下线完成,后人工介入下线成功,后面这个集群就这样了

是三个tikv然后有一个坏了,强制下线的么,后续有继续扩容新的tikv么,感觉像是数据损坏了,用这个命令查看下呢

查看丢失一半以上副本的region

region --jq=‘.regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length as $total | map(if .==(1253,4,5) then . else empty end) | length>=$total)}’

查看丢失全部副本的region

region --jq=‘.regions[] | {id: .id, peer_stores: [.peers[].store_id] | select(length as $total | map(if .==(1253,4,5) then . else empty end) | length>=$total)}’

jq的使用可参考https://asktug.com/t/topic/63086

好的,看看集群状态和region情况,这有好多不正常的region


看那状态应该是我早上操作add remove-peer的少副本数
image


看这个估计没法修复了

PD监控也都OK:

SELECT * FROM INFORMATION_SCHEMA.TABLES;系统表里的数据正常吗?

1.把自动analyze调成一个非当前时间点,保证当前不会自动analye

set global tidb_auto_analyze_start_time=‘00:00 +0000’

2.删除该表的统计信息

DROP STATS db_name.table_name

3.手动analyze 表

analyze table db_name.table_name
#(此时问题解决了,查看健康度恢复到100了)

4.恢复自动analyze

set global tidb_auto_analyze_start_time=

不知道这种方式会不会好用,挺奇葩的问题,有点类似mysql得frm文件丢失

这个是正常的

手动了 一样的问题


这个问题有遇到过没
看了 还没法使用BR来恢复

确实,br无法恢复


有个老哥有相似的操作,但是没人跟这个issue: Don’t let users drop the key system tables. · Issue #20767 · pingcap/tidb (github.com)
可以试下看看能不能手动创建

br我验证了 什么库都可以备份成功 维度mysql库不行,在试试其他办法看看

测试环境集群彻底废了,都不清楚怎么发生这个表丢失

还好是测试环境,可能高版本稳定些,我也遇到过类似的,不过不是系统表,当时好像是重建表解决的。感觉像是sst文件坏了,看你的region状态也不太正常,如果没啥情况就用之前的备份重新建一套吧,我看看@Link 老师帮忙看看这个问题,不太清楚是bug还是什么原因造成的

今天又坏了一套集群,和这个直接存入tikv中的数据,与tidb的关系 一样的问题。

1 个赞

你是通过api接口写入的么

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