Files
gaokao-volunteer-system/docs/BACKUP_AND_RECOVERY_PLAN.md
Hermes Agent 2f4eabf681
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
ops: add backup verification script
2026-06-14 19:36:57 +08:00

1.9 KiB
Raw Blame History

BACKUP_AND_RECOVERY_PLAN

最后更新: 2026-06-14 状态: 最小恢复基线(非生产级高可用)

1. 目标

为 T12 Web 自助 MVP 建立最小可恢复方案,覆盖:

  • SQLite 数据库
  • 报告 HTML/PDF 文件
  • 上传/分享产物
  • 运行所需关键配置与密钥映射关系

2. RPO / RTO 建议

  • RPO: 24 小时内
  • RTO: 4 小时内

说明:当前是轻量单机 MVP不承诺秒级恢复。

3. 需要备份的对象

  1. 数据库
    • 管理库
    • 订单库
    • 分享库
  2. 文件目录
    • 报告输出目录
    • 分享报告目录
    • 未来上传文件目录
  3. 配置与运维资料
    • .env 实际部署值(不入 Git
    • systemd/docker-compose 部署配置
  4. 密钥资料
    • JWT secret
    • Fernet key
    • 支付相关密钥/证书

4. 最小备份策略

数据库

  • 每日一次离线或冷备
  • 备份文件命名包含时间戳
  • 保留最近 7 份日备

文件目录

  • 每日一次目录归档
  • 保留最近 7 份日备

密钥与配置

  • 单独存放,不与业务数据库混包
  • 只允许受控人员访问

5. 恢复步骤(最小版)

  1. 准备干净工作目录
  2. 恢复 SQLite 数据库文件
  3. 恢复报告/分享文件目录
  4. 恢复环境变量与密钥
  5. 启动服务
  6. 验证:
    • 后台能读订单
    • portal 状态页可打开
    • 已交付报告可下载

6. 当前缺口

  • 尚无自动化备份脚本
  • 尚无定时任务
  • 尚无备份完整性校验

7. MVP 上线前最低要求

  1. 至少完成一次手工备份演练
  2. 至少在临时目录恢复一次可读数据库
  3. 明确密钥存放位置和负责人
  4. 不得再使用“Git 备份即可恢复系统”作为对外或内部结论

8. 当前已落地产物

  • scripts/backup_verify.sh
    • 可复制当前 SQLite 数据库与示例报告到临时目录
    • 可验证复制后的数据库可读、表可枚举、报告文件可见