完成真实成对异机备份(07-26-internal-ops-recovery-baseline)
这个提交包含在:
@@ -10,7 +10,8 @@
|
||||
- [x] 更新 runbook/checklist 和部署规约,区分普通备份、影子演练和真实事故恢复。
|
||||
- [x] 运行任务测试计划和 Trellis 治理门禁;按实际结果记录本地 RTO,不伪造 `/ready` 或异机证据。
|
||||
- [x] 在单独授权后完成真实运行来源、职责分离、异机副本和 `/ready` 的只读核查,并如实记录 `NO_GO` 缺口。
|
||||
- [ ] 经后续明确授权完成提交发布、成对异机备份、真实职责分配、部署/迁移和真实格式影子恢复后复验。
|
||||
- [x] 经明确授权完成提交发布和真实 DB+附件+manifest 成对异机备份,两端完整性复验通过。
|
||||
- [ ] 经后续明确授权完成真实职责分配、部署/迁移和真实格式影子恢复后复验。
|
||||
|
||||
## 推荐文件边界
|
||||
|
||||
|
||||
@@ -75,8 +75,8 @@
|
||||
- 获批只读核查结果见 `research/live-read-only-baseline.md`,结论为 `NO_GO_FOR_FORMAL_INTERNAL_USE`。
|
||||
- 公开 HTTPS、TLS、HSTS 和 `/ready` 当前可用,但运行环境没有后端/前端构建标识,且远端迁移少于本地当前基线。
|
||||
- 真实角色只有一个活跃账号,财务和付款复核候选均为 0,不满足 maker-checker。
|
||||
- 历史 DB/附件备份约 55 天未更新、无 manifest,且与运行数据位于同一设备;不能证明 RPO、异机副本或可恢复性。
|
||||
- 当前本地提交尚未进入 upstream;未执行生产备份、角色修改、部署、迁移或恢复,因此最后一项验收继续保持未勾选。
|
||||
- 只读核查时的历史 DB/附件备份约 55 天未更新、无 manifest,且与运行数据位于同一设备;获批后已生成新的 DB+附件+manifest 完整批次并复制到独立主机,两端校验一致。
|
||||
- 当前代码已在获批后以普通快进方式发布到 upstream,来源门禁为 `PASS`;尚未执行角色修改、部署、迁移或真实格式影子恢复,因此最后一项验收继续保持未勾选。
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
| `BUILD_SHA` | 容器未配置 | 无法证明运行来源 |
|
||||
| 前端 build marker | 缺失 | 无法从静态资源证明运行来源 |
|
||||
| Prisma migration | 远端已应用 58,本地当前 61;最新项不匹配 | 远端落后,禁止直接宣称当前版本已部署 |
|
||||
| 本地来源门禁 | `commit_not_in_upstream` | 当前本地提交尚未进入 upstream,标准部署前必须先发布提交 |
|
||||
| 来源门禁复验 | `PASS`,当前提交已发布 | 已完成普通快进发布,范围 `325a795..7658051`,未使用覆盖参数 |
|
||||
|
||||
## 角色和付款职责
|
||||
|
||||
@@ -62,10 +62,22 @@
|
||||
|
||||
服务当前可访问不等于运行与恢复底线通过。进入下一步前必须按顺序完成:
|
||||
|
||||
1. 将当前获批代码提交进入 upstream,确保部署来源门禁可通过。
|
||||
2. 在任何部署前,用新成对备份合同生成 DB + 附件 + manifest,并复制到异机/异盘。
|
||||
1. 已将当前获批代码以普通快进方式发布到 upstream,来源门禁复验为 `PASS`。
|
||||
2. 已在获批后用新成对备份合同生成 DB + 附件 + manifest,并复制到独立主机;两端 manifest 和产物校验通过。
|
||||
3. 明确至少一名财务处理人和另一名 `manager`/`ceo` 付款复核人;系统管理职责单独分配,应急 `admin` 独立托管。
|
||||
4. 通过获批部署任务升级代码和 3 项迁移,验证 `BUILD_SHA`、前端 marker、`/ready`、权限矩阵和回滚点。
|
||||
5. 在独立影子目标恢复同一批次 DB/附件,验证应用 `/ready` 和关键附件引用,记录真实 RPO/RTO。
|
||||
|
||||
以上动作分别涉及发布、远程备份、真实角色写入、部署和影子恢复,必须继续取得明确授权,不能由本次只读批准推导。
|
||||
发布和远程备份已分别获得授权并完成;真实角色写入、部署和影子恢复仍须继续取得明确授权,不能由既有批准推导。
|
||||
|
||||
## 后续获批写入:成对异机备份
|
||||
|
||||
- 执行日期:2026-07-26。
|
||||
- 授权范围:生成真实 DB、附件和 manifest 成对备份,并复制到用户指定的另一台主机。
|
||||
- 源机与目标机设备指纹不同;未记录主机名、地址、SSH 名称、账号或完整目录。
|
||||
- 完整批次:`hyb-oa-backup-20260726T133923Z-live`,包含 `database.dump`、`storage.tar.gz`、`manifest.json` 三个预期文件,总大小约 9.6 MiB。
|
||||
- 源端完整性检查通过;目标端重新计算 DB/附件 SHA-256 并与 manifest 核对通过;两端 manifest 哈希一致。
|
||||
- 目标批次目录权限为 `700`;传输失败产生的单文件残缺副本已精确删除,本机临时暂存数据已安全清理。
|
||||
- 运行主机没有宿主 Node.js,因此为成对备份入口增加 Python 3 manifest 等价回退;无 Node 路径已通过完整合成恢复演练,本地参考 RTO 仍为 6 秒。
|
||||
- 运行中的 PostgreSQL 容器参数与部署目录环境文件存在漂移;本次只在运行容器参数与活动服务数据库连接相互匹配后执行备份,未修改环境文件。
|
||||
- 本次未执行恢复、部署、迁移、角色修改、企微写入或业务写入;真实格式影子恢复和恢复后 `/ready` 仍无证据。
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
"server/README.md",
|
||||
".trellis/spec/hyb-oa/deployment-trialrun.md"
|
||||
],
|
||||
"notes": "本地安全基线已提交;获批真实环境只读核查结论 NO_GO:运行 commit 不可追溯、迁移落后、无财务/复核职责分离、备份约55天且同设备无manifest。提交发布、成对异机备份、角色写入、部署/迁移和影子恢复仍需另行授权。",
|
||||
"notes": "本地安全基线已普通快进发布,来源门禁复验 PASS;获批真实成对异机备份已完成且两端校验一致。整体仍为 NO_GO:运行实例缺少构建标识、迁移落后、无财务/复核职责分离,角色写入、部署/迁移和真实格式影子恢复仍需另行授权。",
|
||||
"meta": {}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户