TIDB无法启动

【 TiDB 使用环境】
实体设备,32G内存,16线程CPU,2T硬盘

【概述】
通过TiUP安装的V4.0.8的版本,单机部署 PD,KV,DB组件各一个
reboot服务器后TiDB无法正常启动,只有PD起来,KV和DB都无法启动

【背景】
正在小量(估计也就3000不到)的刷写数据库的时候,直接模拟断电的场景,使用reboot命令重启服务器

【现象】
系统正常启动,TiDB组件只有PD起来,DB和KV都没法启动

查看KV的日志,报
["failed to create kv engine: RocksDb Corruption: Can’t access /000072.sst: IO error: No such file or directorywhile stat a file for size: /ww/applications/basicComps/TiDB/tidb-data/tikv-20161/db/000072.sst: No such file or directory
"]

【业务影响】业务就别说了,都挂了

【TiDB 版本】
V4.0.8

【附件】

  1. TiUP Cluster Display 信息
1 个赞

disk 类型是什么 ?HDD ?还是 SSD?

1 个赞

两块1T的SSD

1 个赞

这个问题相当的头大,只要我这边在处理大量的数据,直接重启,100%必现这个问题
我做了4台机器(单机的)去测试这个问题,全都挂了,都是这类的提示

不知道有没有恢复方法,生产机要是出这个问题,我觉得我可以给自己买块墓地了

1 个赞

现在对这个问题,有两个延伸问题:
1、单机的情况下,生产环境出现这个问题能不能恢复?
2、如果不能恢复,数据怎么导出来?

虽然最核心的问题是怎么避免这种问题的发生

1 个赞

这个拓扑不对,生产环境标准,至少 3 个 TiKV 实例,1 个 TiKV 实例可以测试着玩玩,但是不能这样生产。如果是模拟断电恢复,如果磁盘丢数据,也是无法启动的。建议还是重新部署 3 节点 TiKV 3 节点 PD 3 节点 TIDB
实例模拟断电实验。

1 个赞

主要是生产环境,我们也有可能只售卖单机的情况
如果单机的情况,部署一个PD,3个DB,3个KV,怎么样?

1 个赞

单机肯定无法做到高可用啊

1 个赞

即便没法高可用,也不能重启100%挂吧?

1 个赞

一般部署要求是:3个tikv-server,3个pd-server,1个或者多个tidb-server,tikv-server和pd-server要分布在不同的机器上,这样保证多副本,断电后能恢复

1 个赞

tidb 是分布式数据库,单机故障 必须保证多数派 服务是不挂的才能进行自愈。
所以你的选型是有问题的。如果生产环境请确保 tikv 是分别在不同 host 部署。

单实例 因为不能满足 multi-raft 的多数派选举所以无法自愈。

1 个赞

所以,综合来看,单机我是不是只能放弃TiDB了?

建议你按照官方的推荐配置进行生产环境部署
https://docs.pingcap.com/zh/tidb/v5.0/hybrid-deployment-topology#混合部署拓扑

2 个赞

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