TiDB集群TiKV强制下线,集群不可用

5个几点集群,其中tikv开始为3个节点,后扩容至5个节点,将原来3个节点中的两个节点踢出集群的时候,长时间处于offline状态,强制改成Tombstone状态导致集群不可用。

原因:

  1. 扩容至 5 个节点,如果想要缩容 2 个节点,需要剩下的 3 个节点有足够的空间可以存储所有容量;
  2. 缩容前,需要正常调度至 Tombstone ,如果强制到 Tombstone ,那么 region 可能存在 2 副本都在这两个下线过程中,没有转化成 Tombstone 的节点。

解决办法:

  1. 通过 pd-ctl 确认 region region-id 的 peer 是否 3 副本的 2 副本在缩容的 2 个 tikv 节点; PD Control
  2. 如果存在已经丢失 2 副本,需要通过 tikv-ctl 强制恢复 region。如果是 1 副本,也可以通过 tikv-ctl 来处理。TiKV Control

强制恢复region,报错,如图

参考这个 帖子 试试 038-拯救大兵瑞恩之 TiDB 如何在 TiKV 损坏的情况下恢复

麻烦试试这个目录 --db ${deploy_dir}/data/db