首页/数据/数据库速查/备份策略设计(3-2-1 与 RPO/RTO)
备份与恢复56 条

备份策略设计(3-2-1 与 RPO/RTO)

把「怎么备」变成「怎么保证能恢复」:全量+增量+binlog 三层组合,按 RPO/RTO 目标定频率与保留,异地留存防单点灾难。

数据库速查数据更新于 2026-10-13

备份策略是什么

备份策略的核心不是「怎么备」,而是「能不能恢复」:把全量、增量与 binlog 三层组合起来,按业务可容忍的丢失时长(RPO)与恢复时长(RTO)确定备份频率与保留周期,并保证至少一份副本在异地,避免单点灾难把数据和备份一起带走。策略写下来、演练过,才算真正可用。

基本信息

3-2-1 原则3 份副本、2 种介质、1 份异地
RPO可容忍的数据丢失时长,决定 binlog 与增量频率
RTO可容忍的恢复时长,决定恢复演练与工具选择
层级组合全量按周、增量按日、binlog 持续归档
落地要求备份对象、频率、保留、责任人、恢复步骤、演练记录

典型使用场景

  • 新业务上线:先按 RPO 与 RTO 定方案,再选工具
  • 策略评审:核对现有备份是否满足合规与业务要求
  • 灾备演练:定期走一遍完整恢复流程并记录耗时
  • 成本权衡:在保留周期与存储成本之间取舍
  • 归档管理:把过期备份按策略清理,避免无限堆积
  • 合规审计:提供备份记录、恢复记录与责任分工
  • 变更前后对比:结构变更后确认备份仍能正常恢复

参考组合

参考组合
# 每周全备
xtrabackup --backup --target-dir=/data/backup/full-$(date +%F)
# 每日增量(基于上一份)
xtrabackup --backup --incremental-basedir=/data/backup/full-2026-10-11 \
  --target-dir=/data/backup/inc-$(date +%F)
# binlog 持续归档到对象存储
mysqlbinlog --read-from-remote-server --host=10.0.0.10 --raw --stop-never \
  mysql-bin.000123 --result-file=/data/backup/binlog/
# 每周抽检:把备份恢复到测试实例并核对行数
# 记录:备份对象、频率、保留周期、责任人、恢复步骤、演练结论

三层组合对照

层级频率恢复时的作用
全量备份每周一次恢复的基础,决定恢复起点
增量备份每日一次缩短恢复时间,链条不宜过长
binlog 归档持续把数据推进到指定时间点
异地副本随备份同步应对机房级灾难
策略要文档化:备份对象、频率、保留、责任人、恢复步骤、演练记录,六项齐全才算完整。
备份任务成功不等于可恢复:定期做恢复演练并记录耗时,才能把 RPO 与 RTO 从纸面数字变成可信承诺;同时给备份失败配置告警,避免长期静默失效。

易错点

  • 只备份不演练,真正恢复时才发现备份文件不可用或步骤缺失
  • 备份与数据放在同一台机器或同一存储,单点故障一锅端
  • 保留周期不按 RPO 设计,只能恢复到几天前,业务无法接受
  • 备份任务失败无告警,长期停留在最后一次成功备份
  • 策略只写文档不落实责任人,出了事故没人清楚该谁来恢复

数据来源与参考

  • MySQL 8.0 Reference Manual: Backup and Recovery
  • Percona XtraBackup 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌