在做bad-ssts的时候发现文件不存在,没有给出相关提示,需如何操作才能恢复呢?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.1
【遇到的问题:问题现象及影响】
查询表经常出现报错"ERROR 9005 (HY000): Region is unavailable",在做bad-ssts的时候发现文件不存在,没有给出相关提示,需如何操作才能修复呢?

start to print bad ssts; data_dir:/tidata/hdap/ti-kv/data-20173; db:/tidata/hdap/ti-kv/data-20173/db

corruption info:
/tidata/hdap/ti-kv/data-20173/db/181752.sst: IO error: No such file or directoryWhile open a file for random read: /tidata/hdap/ti-kv/data-20173/db/181752.sst: No such file or directory

sst meta:
sst 181752 is not found in manifest: Error in processing file /tidata/hdap/ti-kv/data-20173/db/MANIFEST-157104 NotFound: sst 181752 is not in the live files set of the manifest

缩容重新扩容吧,没必要折腾了

1 个赞

已经扩容缩容了一次了,还是这样 :cold_sweat:

乍做的。这是大招呢

先把新扩容的去掉,然后重新扩容

扩容把文件给扩没了? :joy:

扩容一次后还是出现文件丢失的情况? 是不是要检查下文件系统 磁盘是不是有问题

可以看看这个专栏

你这个报错是哪提示出来的,看下region状态
pd-ctl region xxxx
tikv-ctl --host xxx:20160 raft region -r XXXX

这个报错就是一般查询表,或者count()就会报错,之前都是报Region is unavailable,现在就报后面一长串这个
/
SQL错误(1105):no available peers, region: {id:733765 start_key:“t\200\000\000\000\000\000\005j_i\200\000\000\000\000\000\000\001\003\200\000\000\000\004BD2” end_key:“t\200\000\000\000\000\000\005j_i\200\000\000\000\000\000\000\001\003\200\000\000\000\004M_\232” region_epoch:<conf_ver:557 version:7266 > peers:<id:733768 store_id:18 > peers:<id:3086601 store_id:8 > peers:<id:14470098 store_id:7 > } */

我现在一个个把有问题的节点扩容,缩容,然后再试试check

一般你这个报错是磁盘出问题了,可以尝试修复下 ,如果修复不了就定位到哪个region的那个副本有问题,缩掉那个副本所有kv