备份与回滚

“有备份”必须回答四个问题

  1. 备份包含什么?
  2. 存在哪里,生产机损坏后还能否访问?
  3. 最近一次成功是什么时候?
  4. 是否实际恢复并验证过?

分层准备

对象 备份/回滚方式
应用代码 Git Commit、上一发布目录
依赖与运行时 lockfile、Node.js 和系统包版本
Nginx/PM2/systemd 配置文件及启用状态
数据库结构 迁移记录、向前/向后兼容方案
数据库数据 一致性备份、binlog/PITR(按能力)
上传和持久文件 独立备份或对象存储版本
整机 云快照或镜像,确认是否包含数据盘

云快照不是数据库一致性的天然保证。高写入数据库应使用数据库支持的备份流程,或在能保证一致性的条件下制作快照。

回滚不是一个动作

上线前应写清触发条件、负责人、命令、预计时间和数据损失范围。

恢复演练

在隔离环境中恢复备份,验证应用能启动、表数量和关键数据合理、文件校验通过。只看备份任务“成功”不够。