4.3 KiB
4.3 KiB
异机备份最终收尾修复实施计划
实施步骤
- 先扩展合成测试:记录 mock Docker argv 与继承环境,证明四条凭证路径不含合成密码/完整连接串且容器能收到
PGPASSWORD。 - 修改
run-automatic-backup.sh,在隔离子 shell内导出成对备份变量后调用capture_command,移除生产路径env KEY=valueargv。 - 修改
backup-db.sh和restore-db.sh三处 Docker 调用,使用前缀环境赋值配合无值-e PGPASSWORD;不批量改写测试夹具。 - 为 receiver 增加锁内 self-validation 与 orphan reconciliation helper,严格实现
design.md的日归档和周检查点状态表。 - 增加孤儿测试矩阵:明确恢复、明确清理、周点重建、非法类型/链接/重复候选/校验失败全量保留,以及 fail-closed 到源端状态的合成传播。
- 更新 runbook 恢复卡标题和正文为单管理员口径;同步
.trellis/spec/hyb-oa/deployment-trialrun.md的凭证 argv 与中断恢复稳定合同,不新建平行文档。 - 运行聚焦与全量相关门禁,完成只读差异复核;不连接真实告警、不写 ARM/生产、不执行 migration。
- 经用户确认后提交中文 commit;推送和生产/ARM 部署另行批准。
- 部署验证完成后归档本任务,硬收口运维主线并返回产品 backlog;不得因本轮审查再新增运维加固 task。
预计文件边界
scripts/run-automatic-backup.shscripts/backup-db.shscripts/restore-db.shscripts/receive-offhost-backup.shscripts/qa/run-automatic-backup-contract.sh- 必要时扩展现有
scripts/qa/run-backup-restore-drill.sh的 argv 断言,不新增平行 runner。 deploy/trialrun/runbook.md.trellis/spec/hyb-oa/deployment-trialrun.md- 当前 Trellis task 三份规划/证据文件。
验证命令
bash -n scripts/run-automatic-backup.sh scripts/backup-db.sh scripts/restore-db.sh scripts/receive-offhost-backup.sh scripts/qa/run-automatic-backup-contract.sh scripts/qa/run-backup-restore-drill.shbash scripts/qa/run-automatic-backup-contract.shbash scripts/qa/run-backup-restore-drill.shnode deploy/trialrun/validate-env-contract.jspython3 ./.trellis/scripts/task.py validate .trellis/tasks/07-27-offhost-backup-final-fixesnode scripts/qa/check-trellis-governance.mjsnode scripts/qa/check-sensitive-content.mjsnode scripts/qa/audit-docs.mjs --check-registrynode scripts/qa/check-process-contract.mjs --baseline --jsongit diff --check
外部门禁与回滚点
- 生产 Docker 无值
-e VAR继承只读实测已完成;实施阶段不重复读取生产配置或凭证。 - 推送当前 3 个未推送提交与本任务提交,需要提交完成后另行批准。
- 更新生产自动备份脚本、ARM receiver、手工触发真实备份或复制恢复卡到 ARM,均需分别明确批准。
- 生产部署前只读确认活动构建、62 项 migration、四组 timer 和最近成功状态;本任务没有 migration。
- 任一 orphan 合成负例发生对象减少、正式恢复点丢失或歧义状态被自动选择,立即停止,不进入部署。
- 回滚只回退本任务脚本/文档,不清理现场备份、partial、rollback 或已归档 task。
本地实施与验证证据(2026-07-27)
- 凭证传递已覆盖 wrapper、nightly Docker 备份、Docker 影子确认和恢复;mock 捕获的 argv 不含合成连接串/口令,容器命令仍收到继承的
PGPASSWORD。 - receiver 合同共 73 项通过。除原有同日取代、保留轮转、dead-man 和失败传播外,新增日/周孤儿恢复、重复/链接/损坏歧义 fail closed,以及“周 reconciliation 失败时日 rollback 不提前删除”的回归断言。
run-backup-restore-drill.sh通过,隔离合成 RTO 为 9 秒;validate-env-contract.js返回[R26][PASS]。- shell 语法、task validate、Trellis governance、敏感内容扫描、文档注册审计、流程 baseline 和
git diff --check均通过。文档审计仅报告仓库既有 22 个未注册 docs 文件警告,本任务未新增 docs 文件。 - 只读复核发现并修复了“先删日 rollback、后重建周点”的顺序缺陷;稳定规则已同步到
deployment-trialrun.md。本地过程未连接真实企微、ARM 或生产,也未执行 migration。