88 lines
1.9 KiB
Markdown
88 lines
1.9 KiB
Markdown
# 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 数据库与示例报告到临时目录
|
||
- 可验证复制后的数据库可读、表可枚举、报告文件可见
|