
1) 【一句话结论】采用“双活(多活)+异步数据同步+自动化切换”的容灾架构,通过多中心实时业务处理与数据异步复制,确保RTO≤30分钟、RPO≤5秒。
2) 【原理/概念讲解】
首先解释RTO和RPO:RTO(恢复时间目标)是系统从故障发生到恢复服务可用的最大时间,银行核心系统通常要求≤30分钟(避免业务长时间中断);RPO(恢复点目标)是故障发生时,系统允许丢失的数据量,即恢复点与故障点的时间差,比如RPO≤5秒意味着故障时最多丢失5秒内的交易(银行核心业务对数据一致性要求极高,需严格控制数据丢失)。
接着讲容灾架构类型:
数据同步方式:
切换流程核心步骤:
3) 【对比与适用场景】
| 架构类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 热备(冷备) | 主中心运行业务,灾备中心不处理业务,故障时切换 | 数据同步后切换,切换时业务中断(冷备)或业务中断短(热备);RTO较高(冷备≥1小时,热备≤30分钟);RPO较高(冷备≥分钟级,热备≤分钟级) | 对RTO/RPO要求不高的场景(如非核心业务);资源利用率低 | 冷备切换时间长,热备需高成本维护 |
| 双活(多活) | 多中心同时处理业务,通过数据同步保证一致性 | 业务无中断(实时切换);RTO≤分钟级(如30分钟内);RPO≤秒级(如5秒内) | 核心业务(如银行核心系统);对业务连续性要求极高 | 需高成本(多中心部署);数据同步复杂(需保证一致性) |
4) 【示例】
假设银行核心系统采用“主中心(生产)+灾备中心(容灾)”双活架构,数据同步通过Oracle Data Guard实现异步复制(日志传输延迟≤5秒),切换流程如下:
伪代码示例(切换流程):
while True:
send_heartbeat_to_disaster_center()
if not receive_heartbeat_from_master():
trigger_switch()
if data_consistency_check():
take_over_business()
else:
retry_data_sync()
5) 【面试口播版答案】
各位面试官好,针对银行核心业务系统的容灾方案,我的核心思路是采用“双活(多活)架构+异步数据同步+自动化切换流程”,确保RTO≤30分钟、RPO≤5秒。首先,RTO和RPO是容灾的关键指标,RTO是系统从故障到恢复服务的时间,银行核心系统通常要求≤30分钟;RPO是故障时允许丢失的数据量,即恢复点与故障点的时间差,比如RPO≤5秒意味着故障时最多丢失5秒内的交易。然后,架构上采用双活模式,主中心和灾备中心同时处理业务,通过Oracle Data Guard实现异步日志复制(延迟≤5秒),保证数据一致性。切换流程方面,通过心跳检测(主中心每秒向灾备中心发送心跳,连续3秒无响应则判定故障),数据校验(灾备中心校验关键表一致性),自动接管业务,确保RTO≤30分钟。这样既保证了业务连续性,又控制了数据丢失量。
6) 【追问清单】
7) 【常见坑/雷区】