首页/数据/数据库速查/冷备与灾难恢复(Backup & DR)
Redis 运维与场景124 条

冷备与灾难恢复(Backup & DR)

持久化文件不等于备份:定期把 RDB/AOF 冷备到异地并演练恢复;恢复流程=申请隔离实例→拷回文件→启动校验→切流量,跨机房与跨版本都要提前试。

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

持久化不等于备份

开启 AOF 或 RDB 只是让实例自己能重启恢复,文件仍在本机磁盘上;备份要做的是把快照、AOF 目录、配置文件与版本号定期复制到异地,并周期性演练恢复流程。灾难恢复的顺序是申请隔离实例、拷回文件、启动校验、核对数据后再切流量,跨机房与跨版本都要提前验证。

基本信息

备份对象RDB 快照、AOF 目录(7.0+ 为 appendonlydir)、配置文件与版本号
频率由 RPO 决定,关键业务可小时级或更密
异地要求同机同机房不算备份,整机或机房故障会一起丢失
演练定期在隔离实例恢复一次,核对键数量并抽样验证数据

冷备与恢复演练

冷备与恢复演练
redis-cli BGSAVE                                  # 触发后台快照
redis-cli INFO persistence | grep rdb_bgsave_in_progress   # 为 0 表示快照已完成
cp /var/lib/redis/dump.rdb /backup/redis/dump-$(date +%F-%H%M).rdb   # 拷贝快照到备份目录
tar czf /backup/redis/aof-$(date +%F).tgz /var/lib/redis/appendonlydir   # 7.0+ 备份整个 AOF 目录
redis-server /etc/redis/restore-test.conf --dir /data/restore   # 隔离实例启动
redis-cli -p 6380 DBSIZE                          # 核对键数量
redis-cli -p 6380 INFO keyspace                   # 核对各库规模与过期设置

检查点与判据

检查点命令或动作判据
快照完成INFO persistence 的 rdb_bgsave_in_progress为 0 才拷贝文件
备份频率按 RPO 设定定时任务最近一次成功时间在阈值内
异地保存同步到独立存储或异地机房与生产不同磁盘、不同机房
恢复演练隔离实例启动并核对DBSIZE 与抽样数据符合预期
版本记录记录 Redis 版本与配置跨版本恢复前先验证兼容性

典型使用场景

  • 误删数据后的快速回滚,用最近快照恢复隔离实例再挑选数据
  • 机房级容灾:把备份同步到异地并保持可用
  • 版本升级前的全量留档,便于回退
  • 定期演练验证 RPO 与恢复时长是否达标
  • 交付与审计:提供可验证的备份与恢复记录
BGSAVE 写盘期间直接拷贝文件可能拿到不完整产物,要先确认 rdb_bgsave_in_progress 为 0,或检查日志中后台保存成功的记录。
只备份不演练,真正出事时才会发现权限、路径、版本全都不对;恢复演练要按固定周期执行并留下记录。

易错点

  • 把「开了 AOF 与 RDB」当成有备份:文件与数据同盘,磁盘故障时一起丢
  • 拷贝过程中不确认快照状态:拿到半截文件,恢复时才发现不可用
  • 备份与生产同机房:机房级故障场景下备份也一起失效
  • 从不演练恢复:流程未经检验,真实故障时恢复时间远超预期

数据来源与参考

  • Redis 官方文档: 持久化
  • Redis 官方文档: 备份

相关工具

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