【TiDBer 唠嗑茶话会 184】分享你最近一次/印象最深的运维 TiDB 时的误操作,最后是怎么解决的?

就在最近吧,9月底
【最近一次 / 印象最深的运维 TiDB 时的误操作】上周做 TiKV 节点扩容后,想清理旧节点的残留数据,结果手滑把 正在运行的新 TiKV 节点数据目录(/data/tidb-data/tikv-20160) 删了 —— 当时没注意节点 IP 输错了,执行 rm -rf /data/tidb-data/tikv-20160/* 后,监控瞬间报 “TiKV 实例离线”,集群部分 Region 变成 “不可用” 状态,业务查询开始超时。

【最后是怎么解决的】

  1. 第一时间停止该 TiKV 节点(tiup cluster stop tidb-test --node 172.20.20.11:20160),避免残留进程干扰;
  2. 查看 PD 日志确认该节点的 Region 分布,发现有 32 个 Region 的 Leader 或 Follower 在这个节点上,且均有其他副本(因为是 3 副本架构);
  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 副本;
  4. 启动后通过 tiup ctl pd -u http://172.20.20.22:2379 region check 监控 Region 恢复进度,约 15 分钟后所有 Region 均恢复 “健康” 状态,业务查询恢复正常;
  5. 事后用 tiup cluster audit 查看操作记录,确认是 IP 输错导致误删,同时补了数据目录备份脚本(每天凌晨备份 store.id 和关键元数据)。