备份、恢复与版本回滚
备份成功是一条记录,恢复成功才是一项能力
生产故障可能来自错误代码、错误配置、数据库变更、文件误删、密钥泄露或云区域故障。单一服务器快照无法覆盖所有情况,也不能替代应用级验证。
| 动作 | 解决的问题 | 主要前提 |
|---|---|---|
重新部署 | 实例损坏、环境漂移 | 有不可变制品和外置状态 |
版本回滚 | 新代码或配置有缺陷 | 旧制品可取、数据库前后兼容 |
数据恢复 | 数据误删、损坏或区域事故 | 有可恢复备份、日志链和业务校验 |
回滚代码不会自动撤销已经写入的数据;恢复数据库也可能覆盖故障后产生的正确记录。执行前要确认故障类型和数据影响窗口。
- 代码和制品: 仓库、锁文件、构建配置、镜像摘要和制品仓库。
- 运行配置: 非秘密配置版本、密钥引用、权限策略和网络规则。
- 数据库: 全量备份、增量或日志链、恢复点和迁移版本。
- 对象文件: 版本、复制、清单、元数据、生命周期和删除保护。
- 入口: DNS、证书、CDN、负载均衡和防火墙配置。
- 任务: 队列未完成消息、幂等记录、死信和调度配置。
- 选择不与生产共享写入路径的隔离环境。
- 记录备份时间、版本、加密密钥和预期恢复点。
- 从空环境开始恢复数据库、文件和必要配置。
- 执行业务级查询、登录、上传、权限和任务验证。
- 记录 RTO、RPO、人工步骤、失败点和实际费用。
- 清理隔离环境,并保留不含敏感正文的演练证据。
生产数据库的恢复演练不应覆盖现有实例。对象存储测试使用独立前缀或 Bucket,并验证权限不会把恢复副本公开。
数据库变更优先采用“扩展—迁移—收缩”:先增加向后兼容结构,发布读写兼容代码,完成数据回填与观察,最后才移除旧结构。这样旧代码在回滚窗口内仍能运行。
回滚触发条件要可测量,例如错误率、支付失败、关键接口延迟或数据校验失败;同时写明谁有权决定、允许观察多久、回滚预计多久以及回滚后如何验证。
“控制台显示成功”不是完整证据。合格记录至少包含备份标识、恢复目标、开始与结束时间、命令或操作步骤、业务验证、未解决问题和负责人。恢复目标变化、重大架构变更或人员交接后应重新演练。
可结合恢复目标评估、开源迁移与备份工具选型和源端退役门禁继续执行。
Built with