[转帖]记一次sst文件损坏修复过程
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文件损坏修复过程的更多相关文章
- 记录SQL Server2008日志文件损坏的恢复过程
记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...
- 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法
v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...
- haoop 断电后导致block文件损坏
hbase将dfs作为存储,公司测试环境断电后,hadoop集群会因此而损坏一些block文件,这个时候,客户端在读取文件时会报一些错: DataXceiver error processing RE ...
- 遭遇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 ...
- 【O】VSS 2005上传PDF文件之后,打开提示文件损坏或者内容为空
问题: VSS 2005上传PDF文件之后,打开提示文件损坏或者内容为空: 解决方式: 在vss的客户端的tools-option中,file type选项卡里,在binary file文本框中,加入 ...
- innodb文件损坏处理
innodb文件损坏报错如下: 2018-09-03T09:52:43.486363Z 0 [ERROR] InnoDB: Space id and page no stored in the pag ...
- mongodb文件损坏的恢复--无可恢复数据
1.mongodb 启动异常error code 100,检查日志,数据文件损坏 2 检查collection-15-6548623434943640018.wt 可恢复数据,为空,不存在恢复的数据 ...
- mysql启动后随即关闭问题解决(ibdata1文件损坏导致)
机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...
- CF使用TGP下载后,分卷文件损坏的解决方法
首先从游戏的列表删除游戏(安装失败出现分卷文件损坏的游戏) 然后进入游戏重新,继续找到该游戏(安装失败的游戏) 点击下载游戏!不会重新下载的,之后下载一些失败的文件,不会花费多少时间,慢慢等待即可 之 ...
- Oracle备份恢复之断电导致控制文件和日志文件损坏修复
Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...
随机推荐
- 文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
五.用go语言,考虑一棵用 RB-INSERT 插人 n 个结点而成的红黑树.证明:如果 n>1,则该树至少有一个红结点. 文心一言: 要证明这个问题,我们首先需要理解红黑树的性质.红黑树是一种 ...
- 完美解决Python词云库wordcloud不显示中文问题
你的Python词云库wordcloud显示的都是方框吗?别担心,我有一个妙招让你的中文词云变得美观又清晰! 背景: wordcloud是一个基于python的词云生成库,它可以让你用简单的代码创建出 ...
- 【华为云技术分享】云容器引擎 CCE权限管理实践
随着容器化的快速发展,大数据原有的分布式任务调度模式,正在被基于Kubernetes的技术架构所取代.CCE云容器引擎是华为云推出的支持Kubernetes社区原生应用和工具,应用级自动弹性伸缩,自动 ...
- 论文分享丨Holistic Evaluation of Language Models
摘要:该文为大模型评估方向的综述论文. 本文分享自华为云社区<[论文分享]<Holistic Evaluation of Language Models>>,作者:DevAI. ...
- 消除视觉Transformer与卷积神经网络在小数据集上的差距
摘要:本文通过多种操作构建混合模型,增强视觉Transformer捕捉空间相关性的能力和其进行通道多样性表征的能力,弥补了Transformer在小数据集上从头训练的精度与传统的卷积神经网络之间的差距 ...
- AUC/ROC:面试中80%都会问的知识点
摘要:ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到) 本文分享自华为云社区<技术干货 | 解决面试中80%问题,基于MindSpore实现AUC/ROC ...
- 华为云GaussDB深耕数字化下半场,持续打造数据库根技术
摘要:华为云数据库CTO庄乾锋携华为云数据库多位技术专家和优秀合作伙伴共同参与DTCC2021大会并发表了重要主题演讲. 10月18日,以"数造未来"为主题的第12届中国数据库技术 ...
- Appuploader工具让ipa上传到App Store 的最新流程和步骤
苹果官方提供的工具xcode上架ipa非常复杂麻烦.用appuploader 可以在 mac 和windows 上制作管理 证书 ,无需钥匙串工具 条件:1.以Windows为例,创建app打包i ...
- Solon2 开发之IoC,六、提取 Bean 的函数进行定制开发
为什么需要提取Bean的函数?绝不是闲得淡疼.比如:控制器的@Mapping:再比如:Xxl-Job的@XxlJob.这些都是要提取Bean的函数并定制加工的. 1.比如提取 @XxlJob 注解的函 ...
- PPT 文字太多如何处理
Piti 插件 http://www.piti.fun