pd多副本丢失的恢复问题

想象这样一个场景:
1、PD集群的三个节点 突然挂掉2个,这样是整个PD集群只能读?整个tidb集群只能读取还是无法工作?
2、此时如果修复PD集群 ?只是扩容再扩容三个节点就ok吗?
3、如果PD集群的所有节点都挂掉了呢(或者某些数据被误删除掉)? 整个TIDB集群必须初始化重建吗?还是说可以根据tikv的元数据 能修复?
4、PD集群是否需要备份?大家都是怎么备份的?

以上只是技术讨论,未雨绸缪。欢迎各位老师指点。谢谢!

  1. PD 不可用的话。会影响整个集群不可用了。因为挂掉大部分副本的话 PD 会选不出 Leader 。
  2. PD 挂掉的话可以参考 SOP 的操作:【SOP 系列 17】TiUP 环境 PD-Recover 使用恢复案例
  3. 参考 2 。
  4. 不需要备份。PD 这边主要是保存一些元数据信息。PD 灾难恢复的时候等待 TiKV 重新上报该信息即可。(PS:如果有 TiCDC 那么保存在 PD 的 changfeed 的任务会在 pd recovery 的时候被清空,需要根据 TiCDC 的日志的 checkpoint 来重新创建同步任务。)
1 个赞

请问下 pd-recover使用cluster-id alloc-id创建一个新pd集群后,PD内的region分布信息、schema信息如何加装,是pd主动到tikv获取还是tikv通过心跳上报? 如果tidb侧cache的region信息不正确后,去查询pd此时pd还没有region信息怎么处理?


看了官方的文档,部署一套新的(需要停止当前的pd集群)
那后面pd-recover指定的endpoint是当前的?

  • PD recover 之后会等待 TiKV 的心跳上报 region 的信息。
  • 正常情况下 PD recover 需要使用 tiup restart cluster ,所以应该不会存在这种情况。

是的。新部署的 PD 的集群。

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