https://tidb.net/blog/54e388c8

【2023-07-14 14:26:28】应用系统报警删除数据失败,查看日志报Region is unavailable,同时企业微信群也收到数据库告警信息。

二、问题定位

首先查看集群进程都正常,登录tidb dashboard查看日志。

登录tidb节点10.20.10.127 查看详细日志,定位到是region_id是2435254出问题的

通过pd-ctl查看region详情

发现region正常,通过navicat查询上面删除数据一切正常,手动删除数据也正常,因为这张表插入删除数据很频繁,一度以为是中奖了,正好在region分裂、合并时访问到这个region导致删除失败的。

直到2023-07-15日查看tidb日志发现又有同样情况出现,继续深入查看发现是同一个kv报错,如下截图是日志信息

这时候社区大佬提醒是不是有sst文件出现了损坏,建议停止该kv逐个检查sst文件。

三、修复

官方文档提供了修复损坏的 SST的方法。

根据官方文档提供的命令使用bad-ssts检测有问题的sst文件,尝试使用--data-dir指定data-dir目录报参数错误,使用了tikv-ctl + --db参数后执行正常。

tikv-ctl bad-ssts --db /data/tidb-data/tikv-20160/db --pd 10.20.10.63:2379

检查了一个多小时,有10个sst文件需要修复,并列出了操作建议。

第一步:删除损坏的sst文件

按照上述输出的建议命令执行tikv-ctl ldb --db=/data/tidb-data/tikv-20160/db unsafe_remove_sst_file "/data/tidb-data/tikv-20160/db/10973719.sst",报错:Failed: Failed to parse SST file number /data/tidb-data/tikv-20160/db/10973719.sst 。在社区中查看发现需要使用指定sst的文件号而不是文件名,使用 sst文件号执行成功!

第二步从有问题的tikv上删除sst文件的region peer

tikv-ctl --db=/data/tidb-data/tikv-20160/db tombstone -r 2336448 --pd

该命令同样在--data-dir/--db/--pd参数使用上报错,最后使用tikv-ctl --data-dir=/data/tidb-data/tikv-20160 tombstone -r 2336448 --force处理成功,这里建议官方能把这块的文档完善下(也有可能是我用的版本太老了)。

至此官方建议的修复步骤就执行完了,重启tikv节点。

查看之前访问报错的数据已经正常。

然后再看了下kv节点的日志,发现一直在循环刷同一段日志,而且tidb告警信息PD_down_peer_region_nums还是一直在推送。

在pd监控大屏healthregion中发现有82个region处于down_peer_region 状态

通过 pd-ctl 的 region check down-peer查看副本状态为 Down 的 Region,通过region命令查看region的down_peer的store_id 为刚修复的tikv节点。

通过pd-ctl operator add remove-peer 2556939 1133876 手动删除tikv中副本

不用担心region只有2个副本会出问题,pd会自动复制一份副本到其他kv节点。

至此整个修复完成,集群恢复正常。

[转帖]记一次sst文件损坏修复过程的更多相关文章

  1. 记录SQL Server2008日志文件损坏的恢复过程

    记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...

  2. 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法

    v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...

  3. haoop 断电后导致block文件损坏

    hbase将dfs作为存储,公司测试环境断电后,hadoop集群会因此而损坏一些block文件,这个时候,客户端在读取文件时会报一些错: DataXceiver error processing RE ...

  4. 遭遇ORA-01078,LRM-00109,ORA-27046 SPFILE文件损坏

    今天在启动数据库时遭遇到 $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jul 16 21:28:03 ...

  5. 【O】VSS 2005上传PDF文件之后,打开提示文件损坏或者内容为空

    问题: VSS 2005上传PDF文件之后,打开提示文件损坏或者内容为空: 解决方式: 在vss的客户端的tools-option中,file type选项卡里,在binary file文本框中,加入 ...

  6. innodb文件损坏处理

    innodb文件损坏报错如下: 2018-09-03T09:52:43.486363Z 0 [ERROR] InnoDB: Space id and page no stored in the pag ...

  7. mongodb文件损坏的恢复--无可恢复数据

    1.mongodb 启动异常error code 100,检查日志,数据文件损坏 2 检查collection-15-6548623434943640018.wt 可恢复数据,为空,不存在恢复的数据 ...

  8. mysql启动后随即关闭问题解决(ibdata1文件损坏导致)

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...

  9. CF使用TGP下载后,分卷文件损坏的解决方法

    首先从游戏的列表删除游戏(安装失败出现分卷文件损坏的游戏) 然后进入游戏重新,继续找到该游戏(安装失败的游戏) 点击下载游戏!不会重新下载的,之后下载一些失败的文件,不会花费多少时间,慢慢等待即可 之 ...

  10. Oracle备份恢复之断电导致控制文件和日志文件损坏修复

    Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题

    五.用go语言,考虑一棵用 RB-INSERT 插人 n 个结点而成的红黑树.证明:如果 n>1,则该树至少有一个红结点. 文心一言: 要证明这个问题,我们首先需要理解红黑树的性质.红黑树是一种 ...

  2. 完美解决Python词云库wordcloud不显示中文问题

    你的Python词云库wordcloud显示的都是方框吗?别担心,我有一个妙招让你的中文词云变得美观又清晰! 背景: wordcloud是一个基于python的词云生成库,它可以让你用简单的代码创建出 ...

  3. 【华为云技术分享】云容器引擎 CCE权限管理实践

    随着容器化的快速发展,大数据原有的分布式任务调度模式,正在被基于Kubernetes的技术架构所取代.CCE云容器引擎是华为云推出的支持Kubernetes社区原生应用和工具,应用级自动弹性伸缩,自动 ...

  4. 论文分享丨Holistic Evaluation of Language Models

    摘要:该文为大模型评估方向的综述论文. 本文分享自华为云社区<[论文分享]<Holistic Evaluation of Language Models>>,作者:DevAI. ...

  5. 消除视觉Transformer与卷积神经网络在小数据集上的差距

    摘要:本文通过多种操作构建混合模型,增强视觉Transformer捕捉空间相关性的能力和其进行通道多样性表征的能力,弥补了Transformer在小数据集上从头训练的精度与传统的卷积神经网络之间的差距 ...

  6. AUC/ROC:面试中80%都会问的知识点

    摘要:ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到) 本文分享自华为云社区<技术干货 | 解决面试中80%问题,基于MindSpore实现AUC/ROC ...

  7. 华为云GaussDB深耕数字化下半场,持续打造数据库根技术

    摘要:华为云数据库CTO庄乾锋携华为云数据库多位技术专家和优秀合作伙伴共同参与DTCC2021大会并发表了重要主题演讲. 10月18日,以"数造未来"为主题的第12届中国数据库技术 ...

  8. Appuploader工具让ipa上传到App Store 的最新流程和步骤

    ​ 苹果官方提供的工具xcode上架ipa非常复杂麻烦.用appuploader 可以在 mac 和windows 上制作管理 证书 ,无需钥匙串工具 条件:1.以Windows为例,创建app打包i ...

  9. Solon2 开发之IoC,六、提取 Bean 的函数进行定制开发

    为什么需要提取Bean的函数?绝不是闲得淡疼.比如:控制器的@Mapping:再比如:Xxl-Job的@XxlJob.这些都是要提取Bean的函数并定制加工的. 1.比如提取 @XxlJob 注解的函 ...

  10. PPT 文字太多如何处理

    Piti 插件 http://www.piti.fun