【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
如果是3个tikv,删掉其中一个,数据不会丢,但集群不可用。
可以新找个机器,动态扩容一个新的tikv,集群就恢复可用了。之后尝试把这个出问题的tikv节点下线。
如果tikv的数量超过3个,数据不会丢,集群也是可用的,其他tikv负载不高的情况下,可以尝试下线这个有问题的节点。在动态扩容到这个有问题的节点上。
专栏里面有一篇文章是你这个类似的情况,但里面的内容我没有尝试过。
你可以试试看。
tidb 是分布式系统。 分布式系统最大的好处三副本容灾机制。 删除一个无所谓, 仅仅丢失一个节点,业务高可用,没问题,后续再增加一个即可。
3副本的没有太大影响,只是删掉一个sst文件的话,直接用命令tikv-ctl bad-ssts补充一个即可,如果删多了,建议直接新增tikv节点之后,将损坏的tikv节点缩容掉。
你是单节点吗?
是的单节点
在 TiDB 6.4.0 版本中,您可以使用 TiKV Control 工具来强制下线或者忽略掉 SST 文件。具体步骤如下:
-
停止 TiKV 实例,可以使用以下命令:
tiup cluster stop <cluster-name> -N <tikv-node1>:<tikv-port>,<tikv-node2>:<tikv-port>
-
使用 TiKV Control 工具查找需要下线或者忽略掉的 SST 文件,可以使用以下命令:
tikv-ctl --db <db-path> --cmd unsafe-recover remove-fail-stores
其中,
<db-path>
是 TiKV 数据目录的路径。 -
根据输出的 SST 文件信息,选择需要下线或者忽略掉的 SST 文件,可以使用以下命令:
tikv-ctl --db <db-path> --cmd unsafe-recover remove-fail-stores --ssts <sst-file1>,<sst-file2>,...
其中,
<sst-file1>,<sst-file2>,...
是需要下线或者忽略掉的 SST 文件的路径,多个文件之间使用逗号分隔。 -
启动 TiKV 实例,可以使用以下命令:
tiup cluster start <cluster-name> -N <tikv-node1>:<tikv-port>,<tikv-node2>:<tikv-port>
需要注意的是,强制下线或者忽略掉 SST 文件可能会导致数据丢失或者数据不一致,因此在操作之前需要谨慎评估风险。
1 个赞
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。