【TiDB 4.0 PCTA 学习笔记】-3.9.4 Mutil Site Disaster Recovery(TiDB 跨数据中心部署方案))@1班+Kun

课程名称:(301)3.9.4 Mutil Site Disaster Recovery(TiDB 跨数据中心部署方案)

学习时长:10min

课程收获:在多副本异常情况下,保障集群正常可用

课程内容: 查处出现异常的 region;更改 raft group config 来恢复集群使用

哪些情况会丢失数据:region的全部副本丢失;region的大部分副本丢失,但剩余副本没有收到最近的写入

哪些场景容易触发上述情况:sync-log参数没有开启;没有设置正确的lable

故障恢复时建议

记录集群版本;sysc-log的配置;异常宕机的TiKV的数量和它们的日志等

找到有超过一半副本在故障节点上的region,并记录它们的ID

恢复思路:更改raft group configure,使得剩余成员具有选举条件;对于所有region丢失的情况,创建空region

恢复步骤

region部分副本丢失时。降低异常出现的可能,调整PD配置,关闭集群的调度:通过命令,找到超过一半副本在故障节点的region,记录id。在上升故障的节点上,把上述region设置为 tombstone状态,以取消TiKV启动时对上述故障的检查tikv-ctl --db,使用的是本地模式,需要在TiKV shutdown前提下执行。

在剩余正常节点上,移除上述region在故障节点的peer信息;有副本健在的region,可以进行选举leader并提供服务,可以重启PD、重启TiKV集群、处理副本都丢失的region。

根据region id ,创建空region,解决 region is unavailable错误,现在所有的region都可以提供服务。

后续使用API ,根据reigon id确认上述region属于那些表对丢失数据进行处理。

更有效的方法:确定故障前几分钟写入了哪些表,是否有ddl操作,是否可以重新消费更上游的数据重新写入。重导这部分数据。否则只能对最重要的表和索引进行数据校验,保证集群的数据准确。

最后还原PD参数。

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料