1. 课程导入

欢迎进入《核心银行多活容灾与故障切换实战》。在正式进入技术细节之前,本章先解决三个问题:我们为什么要学、要学到什么程度、以及这门课用什么语言来描述问题。核心银行系统与一般互联网业务最大的区别在于:它承载的是账户余额、交易流水、清算指令和监管报送,任何一次非计划停机或数据不一致,都可能直接转化为资金风险与合规风险。因此,多活容灾不是“高可用架构的加分项”,而是核心银行系统的基础生存能力。

一、学习目标:从“知道概念”到“能切换、能复盘”

本课程的学习目标分为四个层次,建议你在学习过程中不断对照自检:

  • 认知层:理解 RTO、RPO、多活、双活、主备、单元化、脑裂、仲裁等核心术语的准确含义,能区分“容灾”与“备份”、“多活”与“负载均衡”的本质差异。
  • 架构层:掌握同城双活、异地多活、两地三中心等典型拓扑的适用边界,理解数据同步、流量调度、单元路由在架构中的位置。
  • 操作层:能够读懂切换预案,识别切换前置检查项,执行或配合完成数据库主备切换、流量摘除与回切、应用单元引流等关键动作。
  • 复盘层:能够基于切换日志与监控指标定位失败原因,区分“架构缺陷”“配置错误”“人为误操作”三类问题,并输出可落地的改进项。
学习建议:本课程强调“实战”,每章都会出现真实场景中的参数、命令或日志片段。请勿只记忆结论,重点理解“为什么在这个条件下必须这样做”。

二、课程整体框架:一条从原理到演练的主线

全课程共30章,整体遵循“概念—架构—数据—流量—切换—演练—复盘”的主线推进。前段建立术语与架构共识,中段深入数据同步与流量调度这两个多活容灾的技术核心,后段聚焦故障切换的实操、演练组织与事故复盘。你可以把它理解为一条完整的运维能力链路:先看懂系统,再动手切换,最后能对结果负责。

下面这张图展示了本课程的核心知识结构:以“业务连续性”为目标,向下分解为数据面、流量面、管控面三条能力线,最终汇聚到故障切换与复盘闭环。

核心银行多活容灾知识结构 业务连续性目标 RTO / RPO / 监管要求 数据面 主备复制 · 一致性 流量面 DNS · GSLB · 单元路由 管控面 预案 · 仲裁 · 监控 故障切换与演练 切换执行 · 回切 · 复盘闭环 风险与误区 脑裂 · 数据丢失 业务价值 资金安全 · 合规

三、核心术语:先把语言统一,再谈技术

多活容灾领域最容易出现的沟通事故,是不同团队对同一个词的理解不一致。例如“双活”在有些团队指两个中心同时承载流量,在另一些团队却指数据库主备同时在线。为避免歧义,本课程统一采用以下定义:

术语 含义 关键判断点
RTO 恢复时间目标,业务从中断到恢复的最长可接受时间 决定切换自动化程度与演练频率
RPO 恢复点目标,允许丢失的数据时间窗口 决定同步复制还是异步复制
多活 多个中心同时对外提供业务服务 关注流量是否真正分流
双活 两个中心均在线,可互为接管 关注数据是否双向或单向同步
脑裂 多个节点同时认为自己是主节点,导致数据分叉 是否有仲裁机制与 fencing
单元化 按客户维度切分流量与数据,形成独立闭环单元 路由键与数据分片是否一致
特别注意:RPO 不等于“不会丢数据”。即使采用同步复制,若仲裁配置不当或网络分区处理错误,仍可能出现数据回退。切换前必须确认最新同步位点。

四、业务价值与典型场景:为什么核心银行必须做多活

核心银行的多活容灾价值,可以从三个真实场景来理解。第一是计划内维护:数据库版本升级、机房电力检修时,通过切换把流量引到另一中心,实现业务无感。第二是单机房故障:某中心网络中断或存储异常,系统在分钟级内完成流量摘除与接管,避免营业中断。第三是区域性灾难:同城双中心同时受影响时,异地中心按预案接管,保障关键交易可继续受理。

这些场景对技术提出的要求并不相同。计划内维护可以容忍秒级抖动,但要求可回切;单机房故障要求快速判断与自动引流;区域灾难则更强调数据不丢与监管可解释。下面是一段典型的切换前置检查命令示例,用于确认数据库同步状态:

# 查看主备同步位点与延迟
show slave status\G
# 关注字段:
#   Slave_IO_Running: Yes
#   Slave_SQL_Running: Yes
#   Seconds_Behind_Master: 0
#   Retrieved_Gtid_Set / Executed_Gtid_Set 是否一致

# 切换前确认无长事务与未提交事务
SELECT * FROM information_schema.innodb_trx
WHERE TIME_TO_SEC(TIMEDIFF(NOW(), trx_started)) > 60;

如果上述检查未通过就贸然切换,最常见的后果是切换后出现数据回退或部分交易重复入账。这也是本课程反复强调“先检查、再切换、后验证”的原因。

五、常见误区与学习复盘

在进入后续章节前,先纠正四个高频误区:

  1. 把备份当容灾。备份解决的是数据可恢复,容灾解决的是业务可连续,两者目标不同,不能互相替代。
  2. 认为多活就是加负载均衡。没有数据同步与单元路由支撑的多活,只是流量分发,故障时依然无法接管。
  3. 忽视仲裁与 fencing。缺少仲裁的双主架构,在网络抖动时极易脑裂,造成不可逆的数据分叉。
  4. 只演练切换,不演练回切。回切往往比切换更复杂,未验证的回切预案在真实故障中风险极高。
本章复盘要点:记住三句话——RTO 决定切换速度,RPO 决定数据底线,仲裁决定系统在异常时是否还能保持唯一主。后续所有架构与操作,都是围绕这三条底线展开的。

完成本章后,你应该能够用自己的话解释多活与双活的区别,说明 RTO 与 RPO 对架构选型的影响,并识别脑裂与数据回退这两类核心风险。接下来,课程将进入核心银行系统架构与容灾等级划分,为后续的实战操作建立完整的架构坐标系。