回滚预案是什么
回滚预案回答两个问题:出事怎么退、退了怎么确认。执行路径按修复类型区分:包级回滚(降级安装旧包)、镜像回滚(切回旧标签或摘要)、配置回滚(回到快照或版本库记录)、数据回滚(备份恢复或前滚补偿)。方案必须在发布评审时就定好,而不是在故障现场临时讨论。
基本信息
| 回滚类型 | 包级降级 / 镜像切换 / 配置回退 / 数据恢复 |
|---|---|
| 前置条件 | 旧版本包或镜像可用、升级前配置已归档 |
| 触发方式 | 按预先约定的判据触发,不临场争论 |
| 时限要求 | 控制在窗口内完成,超出则顺延到下一窗口 |
回滚准备清单
回滚准备清单
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 与数据迁移 | 恢复耗时通常最长,需评估 |
数据迁移类补丁常无法简单回滚:升级前的备份与双写/兼容期设计要在方案评审时确认,事后补救的空间非常有限。
回滚不等于零影响:降级可能引入新的依赖冲突,数据恢复会丢失期间写入的数据。回滚同样需要验证与记录。