AiHummer
中文
登录帐户
v1.2.x
{ }Swagger

备份与灾难恢复

v1.2.x · 已更新 2026-06-26

AiHummer 的状态小且定义明确,这使得备份变得简单 —— 只要你记住 主密钥不在数据库中 并且必须单独保护。本页介绍了需要备份的内容、备份的方法以及如何恢复。

备份什么

有三件独立的事情需要保护:

什么 哪里 为什么
数据库 PostgreSQL 真相的来源——代理、对话、记忆、设置、加密的秘密
斑点 AIHUMMER_BLOB_DIR 数据库引用的媒体和文件附件
万能钥匙 AIHUMMER_MASTER_KEY 解密保险库; 从未存储在数据库中

[!DANGER] 备份 AIHUMMER_MASTER_KEY 分别 并将其存放在其他地方 数据库转储。保管库在这个密钥下以信封加密形式加密—— 失去那个 主密钥和加密的秘密无法恢复,即使是完美的 数据库备份。

PostgreSQL 是事实来源

将数据库视为权威。推荐的基线是 每日 pg_dump用于时间点恢复(PITR)的WAL归档 这样你就可以滚动到转储之间的任何时刻。

# Daily logical dump
pg_dump "$AIHUMMER_DATABASE_URL" --format=custom --file=aihummer-$(date +%F).dump

将转储与连续的 WAL 归档(PITR)配合使用,以便在快照之间进行细粒度恢复。

爱因斯坦的记忆也存在于数据库中:人类可读的标准 Markdown(MEMORY.md) 和 v2 向量存储是 预测 源自它,而不是独立的权威来源。

备份二进制大对象

媒体和文件附件位于 AIHUMMER_BLOB_DIR将此目录与数据库一起备份,以便恢复的对话仍然可以解析其附件。如果 AIHUMMER_BLOB_DIR 未配置,媒体/文件服务未启用,并且没有额外内容可复制。

aihummer 备份与还原命令

CLI 将例程打包成两个命令:

aihummer backup [dir]      # write a backup into [dir]
aihummer restore <file>    # restore from a backup file

将这些用于普通的操作备份和恢复。请参阅 命令行界面参考 有关命令。

[!WARNING] 仅恢复数据库并不是完整的恢复。也要恢复 blob 目录, 并确保 相同 AIHUMMER_MASTER_KEY 存在于目标主机上 — 否则保险库无法解密。

灾难恢复

对于完整的主机丢失场景,请遵循 灾难恢复操作手册 (docs/runbooks/disaster-recovery.md)。恢复顺序为:

  1. 提供一台宿主机并安装相同版本的 AiHummer。
  2. 恢复 万能钥匙 进入 AIHUMMER_MASTER_KEY.
  3. 恢复 数据库 (最新转储,然后如果使用了 WAL/PITR,通过它们进行前滚)。
  4. 恢复 二进制大对象目录AIHUMMER_BLOB_DIR.
  5. 恢复 模块配置和工件 (设置保存在数据库中; 从你的备份中恢复任何模块特定的配置文件)。
  6. 恢复 爱因斯坦记忆文件MEMORY.md 以及规范的 Markdown (记忆投影)——进入他们的目录(或者让它们从中重建 数据库)。
  7. 如果使用嵌入器边车,请恢复 v2 向量存储 (或重建 从恢复的数据库/Markdown中的索引).
  8. 启动服务(aihummer up) 并验证 /readyzdeploy/host/smoke.sh.

[!TIP] 也保持 AIHUMMER_MEDIA_TOKEN_SECRET 使用您的主钥匙。它保持签署 媒体下载 URL 在重启和重建后仍然有效。

接下来去哪儿