就在最近吧,9月底
【最近一次 / 印象最深的运维 TiDB 时的误操作】上周做 TiKV 节点扩容后,想清理旧节点的残留数据,结果手滑把 正在运行的新 TiKV 节点数据目录(/data/tidb-data/tikv-20160) 删了 —— 当时没注意节点 IP 输错了,执行 rm -rf /data/tidb-data/tikv-20160/* 后,监控瞬间报 “TiKV 实例离线”,集群部分 Region 变成 “不可用” 状态,业务查询开始超时。
【最后是怎么解决的】
- 第一时间停止该 TiKV 节点(
tiup cluster stop tidb-test --node 172.20.20.11:20160),避免残留进程干扰; - 查看 PD 日志确认该节点的 Region 分布,发现有 32 个 Region 的 Leader 或 Follower 在这个节点上,且均有其他副本(因为是 3 副本架构);
- 在原节点重新初始化 TiKV 数据目录:先删除残留的
store.id文件(rm /data/tidb-deploy/tikv-20160/conf/store.id),再启动 TiKV(tiup cluster start tidb-test --node 172.20.20.11:20160),让 PD 重新分配 Region 副本; - 启动后通过
tiup ctl pd -u http://172.20.20.22:2379 region check监控 Region 恢复进度,约 15 分钟后所有 Region 均恢复 “健康” 状态,业务查询恢复正常; - 事后用
tiup cluster audit查看操作记录,确认是 IP 输错导致误删,同时补了数据目录备份脚本(每天凌晨备份store.id和关键元数据)。