# 同城两中心架构（C）

![left](./student-guide/diagram/29-Two-center-structure-in-the-same-city-03-01.png)

-------------------------------------------------------------
同城两中心架构
primary-replicas :是在主数据中心 Voter 副本的数量。
dr-replicas 是在从数据中心 Voter 副本的数量。
wait-store-timeout 是当出现网络隔离或者故障时,切换到异步复制模式的等待时间。如果超过这个时间还没恢复,则自动切换到异步复制模式。默认时间为 60 秒。

异步切换到同步:PD 通过定时检查 TiKV 的心跳信息来判断 TiKV 是否恢复连接,如果宕机数小于 PRIMARY/DR 各自副本的数量,意味着可以切回同步了。PD 会将集群复制状态先切换至 sync-recover,再将该状态下发给所有 TiKV 节点。TiKV 的所有 Region 逐步切换成双机房同步复制模式,切换成功后通过心跳将状态同步信息给 PD。PD 记录 TiKV 上 Region 的状态并统计恢复进度。当 TiKV 的所有 Region 都完成了同步复制模式的切换,PD 将集群复制状态切换为 sync。

灾难恢复能力:
- 当处于同步复制状态的集群发生了灾难,可进行 RPO = 0 的数据恢复:
  - 如果主数据中心发生故障,丢失了大多数 Voter 副本,但是从数据中心有完整的数据,可在从数据中心恢复数据。此时需要人工介入,通过专业工具恢复。
  - 如果从数据中心发生故障,丢失了少数 Voter 副本,能自动切换成 async 异步复制模式。
- 当不处于同步复制状态的集群发生了灾难,不能保证满足 RPO = 0 进行数据恢复:
  - 如果丢失了大多数 Voter 副本,需要人工介入,通过专业工具恢复。