配置备份并验证可恢复
项目现名「聊记」;历史安装器及合成图示可能显示旧名「留痕」。界面请对照适用版本。
本页目录
前置条件
- 独立备份桶、权限和生命周期规则已准备。
- 恢复凭据保存在服务器以外的密码管理器。
- 本页针对 SQLite 自托管;PostgreSQL 走匹配恢复点方案。
起点:服务器终端位于生产 deploy/self-hosted,API 正常运行。
配置与核验
- 在设置的 定期备份 页面配置端点、桶、区域、前缀和凭据,测试后保存。
- 若用 CLI,仅通过受保护文件和只读挂载交凭据:
使用自己的端点、桶、区域;id/key 文件须允许容器 UID 10001 读取。docker compose --env-file .env run --rm \ -v "$PWD/backup-secrets:/cred:ro" api \ python -m chat_archive.server.cli backup config-set \ --endpoint https://cos.ap-nanjing.myqcloud.com \ --bucket YOUR_BACKUP_BUCKET --region ap-nanjing --prefix backup \ --secret-id-file /cred/id --secret-key-file /cred/key - 备份并列出:
docker compose --env-file .env exec -T api python -m chat_archive.server.cli backup now docker compose --env-file .env exec -T api python -m chat_archive.server.cli backup list - 执行深校验:
docker compose --env-file .env exec -T api \ python -m chat_archive.server.cli backup verify --deep- 预期:完整备份能列出,deep=true;下载、解压、原库 SHA-256、大小、数据库与计数比较通过;仍非灾备演练。
- 独立桶与凭据
- 测试保存
- 备份
- 列出完整备份
- 深校验
内容与保留边界
备份包含 metadata、blob-state、auth、object-storage、backup 五个状态库。 不含派生 search.sqlite 和 master key;不等于复制了整个附件桶。 恢复后按提示重填对象存储、备份凭据并处理网页两步绑定。
默认 lifecycle 模式由桶过期,应用不发删除。前缀不能在附件命名空间 a/。
参考 daily 14 天、weekly 60 天、monthly 400 天,按实际需求设定并检查规则生效。
验证
历史定向合成检查覆盖备份→列出→深校验→空目录恢复和拒绝非空/损坏对象。 对象存储是假件,不代表真实桶、周期调度或异地恢复验收; 还需按隔离恢复验证业务并记录实际恢复耗时。
失败时
空间不足查快照暂存空间,权限失败查凭据文件 UID,CA 错误检查 cert-init。 只读容器不能用 docker cp 写入 /tmp 交凭据;备份凭据解不开时按界面重新配置。