在 5.0 及以上版本中,该接口只支持更改 state 为 Up 或者 Offline,废弃了直接更改为 Tombstone 这个功能。这是由于直接更改为 Tombstone 总是引起操作者意料之外的结果。之后我们有计划后续对相关的场景进行一些针对性的开发。
在您的这个例子中,虽然该 TiKV 实例已经不存在,但由于使用 --force 直接下线机器,因此在逻辑上该 TiKV 上仍存在 Peer,PD 需要将这部分 Peer 全部搬运到其他节点上,这个 Store 才能正常转变为 Tombstone 并从 Information_schema 中消失。但是由于当前集群配置为 3 副本,但只有 2 个可用的 TiKV 节点,这部分 Peer 并没有目标可以搬运,所以下线流程只能阻塞。您这边需要增加一个 TiKV 实例,让这部分 Peer 有目标可以移动。然后只需等待旧 TiKV 的下线流程结束,Information_schema 中该 TiKV 就会消失。
如果原 IP 的机器上数据已经丢失,您希望在原机器上直接启动新的 TiKV 实例,此时会提示地址冲突而失败。目前推荐的做法是,在原机器上使用另外一个端口进行上线新 TiKV 的操作。