首页/数据/数据库速查/RDB 恢复流程与文件校验
Redis 运维与场景124 条

RDB 恢复流程与文件校验

恢复=把快照文件放回 dir 并启动:Redis 启动时自动加载 dump.rdb;文件损坏用 redis-check-rdb 校验,启动日志会提示加载结果。

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

RDB 恢复是什么

RDB 恢复本质上就是「把快照文件放回正确位置,然后启动」:Redis 启动时会读取 dir 与 dbfilename 指定的文件并自动加载,AOF 开启时优先加载 AOF。文件是否完好可以用 redis-check-rdb 校验,启动日志会明确写出加载了哪个文件、多少键、耗时多久。流程简单,容易出问题的是权限、版本,以及「到底加载了哪个文件」。

基本信息

加载时机实例启动时自动加载,无需额外命令
加载优先级AOF 开启时优先加载 AOF,其次才是 RDB
校验工具redis-check-rdb 文件路径
文件位置dir 与 dbfilename 两个配置决定
前置建议恢复流程先在预发环境演练过再上生产

典型使用场景

  • 误操作后从最近一次快照回滚数据
  • 实例迁移时搬移数据文件并验证加载结果
  • 快照文件损坏导致启动失败,需要定位损坏原因
  • 定期演练恢复流程,记录实际耗时用于修正预估
  • 核对备份文件与线上实例的版本兼容性

恢复步骤

恢复步骤
redis-cli shutdown save            # 停止实例并保存一次快照
cp /backup/dump.rdb /var/lib/redis/dump.rdb
chown redis:redis /var/lib/redis/dump.rdb
chmod 640 /var/lib/redis/dump.rdb
redis-check-rdb /var/lib/redis/dump.rdb   # 先校验,再启动
redis-server /etc/redis/redis.conf
# 启动日志关注:
# * Loading RDB produced by version 7.2.4
# * Ready to accept connections

环节与常见错误

环节要点常见错误
文件位置必须放在 dir 与 dbfilename 指定路径放错目录,启动后用的是旧文件
文件属主与运行用户一致,权限 640 左右权限不对导致启动直接失败
版本兼容跨版本恢复前先确认可读性高版本文件拿到低版本上无法加载
加载优先级AOF 优先于 RDB只想用 RDB 却没关掉 AOF
结果核对看日志中的文件版本与键数不复核就等于不知道加载了什么
同一目录下同时存在 AOF 与 RDB 时会优先加载 AOF,只想用 RDB 恢复必须先关闭 appendonly 或清空 AOF 目录,否则忙活半天恢复出来的还是旧数据。
备份文件建议在文件名或旁挂清单里标注版本、生成时间与校验值:跨版本恢复(例如把 7.x 的文件给 6.x)通常直接报错,提前标注能省下大量排查时间。
恢复后的第一件事是核对数据:库的数量、关键键的数量、抽样几条业务数据。只看「服务起来了」就宣布恢复完成,是演练中反复出现的误区。

易错点

  • 启动成功就认为恢复完成:实际加载的可能是同目录下的旧快照
  • 文件权限与属主没改对:Redis 启动即失败,线索只出现在日志里
  • 在开启 AOF 的实例上直接放 RDB 文件恢复:优先级规则导致数据没有变化
  • 没有在预发环境演练过就在生产恢复:流程里的坑会在最紧张的时刻集中暴露

数据来源与参考

  • Redis 官方文档: 持久化(加载)
  • Redis 官方文档: redis-check-rdb

相关工具

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