特性概述
功能定义
在确保数据零丢失的前提下,通过计划内切换主数据库实例和灾备数据库实例的角色(Switchover),实现在数据库维护升级与容灾演练等场景中对系统可用性的保证。倒换原理如下图所示。
用户场景
银行核心交易系统需定期验证容灾能力,通过主动switchover将主数据库实例切换至同城或者异地的灾备数据库实例,验证RPO=0(零数据丢失)且RTO(业务恢复时间)满足规格。
规格约束
规格约束根据容灾形态的选择有部分差异:
- 基于流式复制的异地容灾解决方案。
- 基于paxos协议:
- 在没有日志积压(即容灾监控指标RPO<=1秒,RTO<=1秒),主备数据库实例均处于Normal状态且所有组件(DN、ETCD、CM_Agent、CM_Server)状态正常,启动容灾倒换可在50秒内完成倒换 。
- 在没有日志积压(即容灾监控指标RPO<=1秒,RTO<=1秒),主备数据库实例部分组件(DN、ETCD、CM_Agent、CM_Server)状态异常且仍满足少数派故障的状态,启动容灾倒换可在60秒内完成倒换。
- 在有日志积压(即容灾监控指标RPO>1秒,RTO>1秒),日志传输,日志回放会增加容灾倒换的耗时,无法实现规格内的倒换。
- 在ARM平台下,如果PAGESIZE(查询方式:getconf PAGESIZE)不满足64KB规格,无法实现规格内的倒换。
- 基于quorum协议:
- 在没有日志积压(即容灾监控指标RPO<=1秒,RTO<=1秒),主备数据库实例均处于Normal状态且所有组件(DN、ETCD、CM_Agent、CM_Server)状态正常,且打开快速倒换模式的情况下,启动容灾倒换可在10秒内完成倒换。
- 在没有日志积压(即容灾监控指标RPO<=1秒,RTO<=1秒),主备数据库实例部分组件(DN、ETCD、CM_Agent、CM_Server)状态异常且仍满足少数派故障的状态,且打开快速倒换模式的情况下,启动容灾倒换可在60秒内完成倒换
- 在有日志积压(即容灾监控指标RPO>1秒,RTO>1秒),日志传输,日志回放会增加容灾倒换的耗时,无法实现规格内的倒换。
- 在ARM平台下,如果PAGESIZE(查询方式:getconf PAGESIZE)不满足64KB规格,无法实现规格内的倒换。
- 基于paxos协议:
- 基于同城双中心高可用方案。
- 在备数据库实例回放能追上主数据库实例并且备数据库实例网络正常的场景下,数据库实例全部正常,内核执行failover的平均RTO小于30秒;数据库实例少数派故障,内核执行failover的平均RTO小于90秒(具体时间受数据库实例重启后待回放的日志量影响)。
- 在备数据库实例回放能追上主数据库实例并且备数据库实例网络正常的场景下,数据库实例全部正常,内核执行switchover的平均RTO小于1分钟;数据库实例少数派故障,内核执行switchover的平均RTO小于2分钟(具体时间受数据库实例重启后待回放的日志量影响)。
- 如果出现超规格场景,比如短暂大业务压力场景,RTO将不可避免地升高。实测当前版本想要满足以上failover和switchover的RTO约束,需保证主实例日志产生速率在一定范围内,典型配置的日志产生速率要求可参见表1。
- 仲裁节点资源占用满足4U16G1T规格。
数据库实例间倒换RTO规格演进请参见表2。
| 容灾形态 | 部署方式 | 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秒 |