备份不是拷贝:先算清 RTO 与 RPO

「我们每天都备份」这句话,在事故现场常常撑不过五分钟。真正要先回答的不是「备没备」,而是出了事之后,业务能容忍多久、丢多少。两个参数把这件事说清楚:

  • RTO(恢复时间目标):系统挂掉后,业务能容忍停摆多久?五分钟、两小时、还是一晚上?RTO 决定了你的容灾是要「自动秒级切换」还是「人工过夜恢复」。
  • RPO(恢复点目标):能容忍丢多长时间的数据?RPO 等于零意味着必须实时同步;RPO 等于一天意味着每天备一次就够。
业务类型典型 RTO典型 RPO备份策略取向
核心交易支付< 5 分钟≈ 0双机房实时同步,自动切换
一般业务系统1~4 小时≤ 15 分钟主从 + 定期 binlog 备份
内部工具 / 文档站24 小时≤ 24 小时每日全量 + 异地副本即可
备份策略是业务定价的函数。给内部文档站做双活,和给支付系统只做每日备份,都是浪费——前者浪费钱,后者赌命。
本文核心知识点
  • 先定目标RTO 决定切换自动化程度,RPO 决定备份频率,别倒过来。
  • 3-2-1三份副本、两种介质、一份异地,是备份策略的底线。
  • 恢复验证备份的价值由「能不能真的恢复」定义,备份本身不算数。
  • 演练定期做真实切换,预案只在第一次读它时才暴露出问题。
备份与容灾配图:服务器机架、存储磁盘、发光盾牌与备用机房由双向箭头连接的蓝色扁平科技插画
备份解决「数据还在不在」,容灾解决「服务还能不能起来」,演练解决「上面两件事是不是真的」。

3-2-1 策略:经典原则的现代落地

3-2-1 是备份领域被念叨了几十年的黄金原则,到云时代依然成立,只是介质变了:

  • 3 份数据副本:一份生产数据,两份备份。单副本在磁盘故障面前等于没有。
  • 2 种不同介质:别把两份备份都放在同一块盘、同一块 RAID、同一台虚拟化平台上。
  • 1 份异地:另一份备份放在物理上远离主机房的地方——跨可用区、跨城市、甚至对象存储归档,防机房级灾难。

现代云环境下最常见的落地形态是:生产主库 → 同地域从库(热备) → 每日快照跨区域复制到对象存储(异地冷备)。三层各有各的恢复速度,覆盖不同事故半径:

层级形态应对事故恢复速度
热备层主从同步 / 多副本单机故障、主库宕机秒级~分钟级切换
快照层每日 / 每小时快照误删数据、逻辑错误十几分钟~小时级回滚
异地冷备层对象存储归档副本机房级灾难、勒索病毒小时级~天级恢复

全量、增量与差异:备份类型怎么选

备份类型的选择本质是在「备份窗口」和「恢复速度」之间做权衡:

  • 全量备份:每次都完整备份一遍。恢复最简单——只需一份;但耗时、占空间,每天对 1TB 数据做全量往往不现实。
  • 增量备份:只备份「上次备份之后变化的部分」。快、省空间;但恢复时要先还原全量、再依次回放每一份增量,链条长、任何一环损坏就断档。
  • 差异备份:只备份「上次全量之后变化的部分」。介于两者之间——恢复只需要全量 + 最近一份差异。
# 典型组合:周日全量 + 每天增量,保留 4 周
# 恢复路径:周日全量 → 周一增量 → 周二增量 → … → 故障前一天
# 风险:链条上任何一份增量损坏,之后的数据就回不去了

# 更稳的组合:每日差异,每周全量
# 恢复路径:最近一次全量 → 最近一份差异(只需两步)
# 代价:每天的差异体量会比纯增量大一些

数据库领域的实践和文件备份略不同:全量快照 + 持续归档日志(binlog / WAL)是更主流的方案。快照给你一致性基准点,归档日志让你把数据回放到任意秒级时间点——也就是时间点恢复(PITR)。误删一张表?不用整库回到昨天,回放日志把时间点定在误删前一秒即可。

容灾等级:从冷备到双活

备份解决「数据不丢」,容灾解决「服务不停」。容灾有几个常见等级,按投入和恢复速度递增:

  • 冷备:备用数据定期复制到异地,但那边平时没有运行中的服务。出事时才从零拉起环境,RTO 以小时甚至天计。便宜,适合非核心系统。
  • 温备:异地有一套热着的、数据同步中的备用环境,但不接流量。切换时只需把流量切过去,RTO 降到分钟级。
  • 热备 / 主从:主备双活数据实时同步,备机可以随时顶上来,配合负载均衡做秒级切换。
  • 双活 / 多活:两个机房同时对外提供服务,数据双向同步。RTO 接近零,但数据一致性和脑裂处理复杂度指数级上升。

对绝大多数中小团队,温备是性价比拐点:不用像双活那样解决双向同步和冲突,但又比冷备多了一套平时就能跑的备用环境。云厂商的跨可用区主从 + 自动故障切换,基本就是这个档位。