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

88 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 数据库与示例报告到临时目录
- 可验证复制后的数据库可读、表可枚举、报告文件可见