网络故障集体迁移IP故障恢复过程

【 TiDB 使用环境`】测试环境
【 TiDB 版本】5.4.1

  1. 故障描述:
    测试站,使用了4台虚机,今天网络故障,被强制断电,集体宕机,其中有俩个TIKV,节点虚机直接报废无法启动。
    测试环境没有备份只能硬着头皮去恢复测试数据。
  2. 原虚机各节点分布
    192.168.1.110 tidb-server,ti-pd 瘫痪无法启动
    192.168.1.111 tipd,监控,ti-pd 正常
    192.168.1.112 tikv 瘫痪无法启动
    192.168.1.113 tikv 正常

3.恢复过程

  • 首先重建虚机使节点服务器正常开机启动

  • 恢复过程发现因为网络故障,所有节点ip更换成10.1.1.0段,导致各tidb节点都宕机状态,尝试手动更换IP(修改tikv启动配置文件,修改tiup的meta.yaml等配置文件)启动异常不可行,尝试通过扩缩绒的方式恢复,失败。

  • 最后果断重建一个干净的环境,启动一个新的集群。

  • 启动集群后,把需要恢复的数据tikv-20160 挂进去,备份原来的(因为数据太大了20个G,我这里就直接挂云硬盘进去)
    image

  • 我扩容了一台TIKV,重启集群,PD 处于UP 状态,TIKV处于Disconnected,发现tikv报错 cluster ID 新旧不一致。


  • 最后因为 cluster ID 不一致,搜索文档 https://docs.pingcap.com/zh/tidb/v5.4/pd-recover 根据文档去找旧的集群中的cluster ID 与 alloc-id


  • 然后在新的集群中 PD Leader 尝试恢复,发现恢复 成功。

  • 然后重启集群,tiup cluster restart tidb-test 查看tikv日志,tikv正常启动。新扩容的那台因为是空数据,不知道为什么没有起来。暂时先不管

  • 测试数据库连接正常,可以查询插入数据,至此测试数据库算是找回来了。

  1. 总结
    对tidb 一些深入的知识点还是不够熟悉,其次本次数据恢复是在测试环境,后面不太清楚是否有隐患,仅供参考,恢复数据前,一定要备份。
2 个赞

感谢经验总结~

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。