备份与恢复
ZIP、加密归档、原秘密与恢复边界
创建与保存
后台「备份」页可以立即备份并下载。未启用归档加密时生成 ZIP;在「设置 → 存储 → 备份」启用备份加密后,新归档为 .mxbackup。定时备份、S3 上传和恢复前安全快照沿用该设置。字段加密与归档加密是两项独立设置,未来字段加密必填不等于所有备份必须加密。
启用时浏览器生成公私钥对,只把公钥提交给服务端;私有恢复密钥只展示一次,务必复制或下载后单独保管。需要 HTTPS 或 localhost 的 Web Crypto 环境。服务器配置中的公钥不能用来恢复,旧归档仍需要创建时对应的私钥。
备份私钥、字段加密密钥与 JWT 分别保存。归档打开后,其中的加密凭据仍需要当时的原字段密钥和 JWT。不要把恢复私钥与备份一起放在数据目录。
恢复
上传已有 ZIP / .mxbackup,或选择服务器上的备份回滚,都无需手工改名。加密归档在恢复对话框粘贴私钥或导入 PEM 文件;它只随本次认证请求发送,不保存到服务器设置。旧 ZIP 不需要归档密钥,早期 v1 对称加密归档输入原 64 位十六进制密钥。
服务端先验证整个加密归档,再解包和恢复数据库。缺少/错误私钥、损坏归档会失败;不要重新生成密钥冒充恢复。恢复需要 pg_dump、pg_restore、psql,官方镜像包含客户端工具。
恢复会覆盖数据库业务内容和数据文件。操作前服务端尝试创建安全快照,仍应额外保存可恢复的外部副本。会话、日志、搜索索引等运行时表按当前结构重建为空表。数据库替换在单个事务内,文件随后复制,二者不是同一个原子事务;文件复制失败时保留快照处理,不应报告整次恢复成功。
恢复后核对文章、评论、登录、凭据消费及文件。跨版本恢复须遵循对应迁移指南。未来 v18 的历史恢复应走「隔离恢复 → migrate → check → 验证 → v18」路径,见 v18 准备说明。当前没有自动隔离预检,不要恢复后直接开放未来 v18 业务。
手工数据库快照
服务端使用 PostgreSQL custom 格式。手工备份可以使用:
pg_dump -Fc "$PG_URL" > pg.dump该文件仅是数据库快照,不包含数据目录、秘密管理器或恢复私钥。请在隔离数据库中演练恢复;不要将生产库作为首次验证目标。