
# 特性概述
#### 功能定义
在确保数据零丢失的前提下，通过计划内切换主数据库实例和灾备数据库实例的角色（Switchover），实现在数据库维护升级与容灾演练等场景中对系统可用性的保证。倒换原理如下图所示。
图1集群间倒换原理   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002620640625.png "点击放大")
#### 用户场景
银行核心交易系统需定期验证容灾能力，通过主动switchover将主集群切换至同城或者异地的灾备集群，验证RPO=0（零数据丢失）且RTO（业务恢复时间）满足规格。
#### 规格约束
规格约束根据容灾形态的选择有部分差异：
- 基于流式复制的异地容灾解决方案。
  - 基于paxos协议：
    - 在没有日志积压（即容灾监控指标RPO\<=10秒，RTO\<=1秒），sequence个数少于10，主备集群实例均处于Normal状态且所有组件（CN、DN、ETCD、GTM、CM_Agent、CM_Server）状态正常，且打开快速倒换模式的情况下，启动容灾倒换可在内核时间30秒内完成倒换，特别地，当主备集群异构且CN数量不一致，倒换完成之后，CN数量多的集群会以Degraded态退出。
    
    - 在没有日志积压（即容灾监控指标RPO\<=10秒，RTO\<=1秒），sequence个数少于10，主备集群实例部分组件（CN、DN、ETCD、GTM、CM_Agent、CM_Server）状态异常且仍满足少数派故障的情况下，且打开快速倒换模式的情况下，启动容灾倒换可在内核时间90秒内完成倒换。
    
    - 在有日志积压（即容灾监控指标RPO\>10秒，RTO\>1秒），日志传输、日志回放会增加容灾倒换的耗时，无法实现规格内的倒换。
    
    - 在ARM平台下，如果PAGESIZE（查询方式：getconf PAGESIZE）不满足64KB规格，无法实现规格内的倒换。
     
  
  - 基于quorum协议：
    - 在没有日志积压（即容灾监控指标RPO\<=10秒，RTO\<=1秒），sequence个数少于10，主备集群实例均处于Normal状态且所有组件（CN、DN、ETCD、GTM、CM_Agent、CM_Server）状态正常，且打开快速倒换模式的情况下，启动容灾倒换可在内核时间20秒内完成倒换，特别地，当主备集群异构且CN数量不一致，倒换完成之后，CN数量多的集群会以Degraded态退出。
    
    - 在没有日志积压（即容灾监控指标RPO\<=10秒，RTO\<=1秒），sequence个数少于10，主备集群实例部分组件（CN、DN、ETCD、GTM、CM_Agent、CM_Server）状态异常且仍满足少数派故障的情况下，且打开快速倒换模式的情况下，启动容灾倒换可在内核时间90秒内完成倒换。
    
    - 在有日志积压（即容灾监控指标RPO\>10秒，RTO\>1秒），日志传输、日志回放会增加容灾倒换的耗时，无法实现规格内的倒换。
    
    - 在ARM平台下，如果PAGESIZE（查询方式：getconf PAGESIZE）不满足64KB规格，无法实现规格内的倒换。
     
   
- 基于同城双中心高可用方案。
  - 在备集群回放能追上主集群且备集群网络正常的场景下，若集群整体运行正常，内核执行failover的平均RTO小于30秒；若集群出现少数派故障，内核执行failover的平均RTO小于90秒（具体时间受集群待回放的日志量影响，当前数据为3CN3DN3副本配置的情况）。
  
  - 在备集群回放能追上主集群且备集群网络正常的场景下，若不存在日志积压（即容灾监控指标RTO \<= 1秒）、Sequence数量少于10，且集群整体运行正常，内核执行switchover的平均RTO小于1分钟；若集群出现少数派故障，内核执行switchover的平均RTO小于2分钟（具体时间受集群待回放的日志量影响，当前数据为3CN3DN3副本配置的情况）。
  
  - 如果出现超规格场景，比如短暂大业务压力场景，RTO将不可避免地升高。实测表明，当前版本若要满足上述failover和switchover的RTO约束，需保证主集群单分片日志产生速率控制在特定范围内，典型配置下的日志产生速率要求如[表1]所示。
     表1典型配置下日志产生速率 
    | 典型配置              | 支持主集群单分片日志产生速率 |
    |:---|:---|
    | 96U/768G/SATA SSD | \<=7.5MB/s     |
       
    
   
集群间倒换RTO规格演进请参见[表2]。
 表2集群间倒换RTO规格演进 
| 容灾形态                                                                  | 部署方式 | R2C10                 | 503.1                  | 503.1 SPC2000c | 503.2 | 505 | 505.1 | 505.2 | 505.2.1 SPC0100 | 506.0 | 506.1及以后 |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 基于流式复制的异地容灾解决方案  | 集中式  | 5分钟(SPC660之后版本优化到50秒) | 5分钟（SPC1700之后版本优化到50秒） | 50秒            | 50秒   | 50秒 | 50秒   | 50秒   | 50秒             | 10秒   | 10秒      |
| 基于流式复制的异地容灾解决方案  | 分布式  | 10分钟                  | 10分钟                   | 10分钟           | 10分钟  | 60秒 | 60秒   | 30秒   | 30秒             | 20秒   | 20秒      |
| 基于同城双中心高可用方案   | 集中式  | 2分钟                   | 2分钟                    | 60秒            | 2分钟   | 2分钟 | 2分钟   | 2分钟   | 60秒             | 60秒   | 60秒      |
| 基于同城双中心高可用方案   | 分布式  | 不支持                   | 不支持                    | 不支持            | 不支持   | 3分钟 | 2分钟   | 2分钟   | 2分钟             | 60秒   | 60秒      |
   
