首页/安全/漏洞与攻击面速查/回滚预案与备份策略
补丁与修复管理45 条

回滚预案与备份策略

发布前定义回滚判据与执行路径:包级回滚(降级安装)、镜像回滚(旧标签)、配置回滚(快照/版本库)与数据回滚(备份+日志)各有适用场景。

漏洞与攻击面速查安全更新于 2026-10-13

回滚预案是什么

回滚预案回答两个问题:出事怎么退、退了怎么确认。执行路径按修复类型区分:包级回滚(降级安装旧包)、镜像回滚(切回旧标签或摘要)、配置回滚(回到快照或版本库记录)、数据回滚(备份恢复或前滚补偿)。方案必须在发布评审时就定好,而不是在故障现场临时讨论。

基本信息

回滚类型包级降级 / 镜像切换 / 配置回退 / 数据恢复
前置条件旧版本包或镜像可用、升级前配置已归档
触发方式按预先约定的判据触发,不临场争论
时限要求控制在窗口内完成,超出则顺延到下一窗口

回滚准备清单

回滚准备清单
1. 保留旧版本包/镜像与升级前配置快照
2. 数据类变更:确认备份可用性与恢复演练记录
3. 明确判据:什么现象触发回滚(提前约定,避免临场争论)
4. 明确时限:回滚需在窗口内完成,超出则顺延下一窗口
5. 明确授权:谁有权按下回滚按钮,避免多层等批复

包级降级示例(RPM 系)

包级降级示例(RPM 系)
rpm -Uvh --oldpackage nginx-1.24.0-1.el9.x86_64.rpm   # 降级安装旧版本包
dnf downgrade nginx                                    # 或由包管理器降级
rpm -q nginx ; nginx -v                                # 降级后核对版本
systemctl restart nginx && curl -sI localhost | head -1  # 重启并复测核心功能

典型使用场景

  • 补丁窗口方案评审:把回滚步骤写成可执行的清单,随变更单一起提交
  • 数据库类变更:确认备份可恢复、并提供前滚补偿方案
  • 容器化发布:保留最近若干个镜像标签与摘要用于快速切换
  • 应急演练:定期演练一次回滚,验证步骤与耗时
  • 故障复盘:分析为何需要回滚,补充前置验证项

回滚类型与适用

类型适用场景注意点
包级降级操作系统与中间件补丁旧包需保留在本地或私有源
镜像切换容器化应用回滚用旧摘要,避免标签漂移
配置回退配置加固与参数调整确认运行时已重新加载
数据恢复schema 与数据迁移恢复耗时通常最长,需评估
数据迁移类补丁常无法简单回滚:升级前的备份与双写/兼容期设计要在方案评审时确认,事后补救的空间非常有限。
回滚不等于零影响:降级可能引入新的依赖冲突,数据恢复会丢失期间写入的数据。回滚同样需要验证与记录。

易错点

  • 只准备了包回滚,数据库 schema 变更无法回退,实际只能前滚
  • 回滚判据没有提前约定,故障现场争论不休,窗口被浪费
  • 旧版本包被仓库清理或未在本地留存,需要时下载不到
  • 回滚后未复测核心功能,服务起来了但业务仍是坏的
  • 缺少回滚授权人,一线不敢按按钮,问题持续扩大

数据来源与参考

  • Red Hat 文档(dnf downgrade 与 --oldpackage)
  • NIST SP 800-40r4(回退计划)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌