跳转到内容

备份 & 恢复

ASP 提供停机全量备份和恢复脚本。备份包含部署文件、配置、证书、日志以及全部 Docker named volumes。

保持部署目录名称不变

备份和恢复都必须在名为 asp-compose 的部署目录中执行。

修改目录名会改变 Docker Compose project name 和数据卷名称,导致脚本拒绝执行。

保护备份文件

备份包含 .env、证书、数据库、对象存储和日志,可能包含密钥、API Key、告警数据和调查记录。Custom Variables 的 Secret 和普通 value 都以明文保存在 PostgreSQL 中,也会进入备份。请加密保存并限制访问权限。

1. 创建全量备份

asp-compose/ 目录中执行:

bash
./scripts/backup.sh

脚本会停止服务、创建备份、重新启动服务并运行 doctor.sh。默认备份目录:

text
backups/asp-full-<timestamp>/

如需写入其他磁盘,指定备份根目录:

bash
./scripts/backup.sh /mnt/asp-backups

每个备份目录包含:

文件内容
files.tar.gz.env、Compose 配置、脚本、定制内容、证书和日志。
volumes.tar.gzPostgreSQL、Redis、RustFS、定制 Python 依赖和静态文件 volumes。
manifest.txt备份格式、时间和 Compose project 信息。
SHA256SUMS两个归档的 SHA-256。

备份期间 ASP 会暂时停止。脚本不会自动删除旧备份,请根据磁盘容量自行维护保留策略。

2. 恢复前准备

恢复前确认:

  • 当前目录名为 asp-compose
  • 目标备份目录包含 manifest.txtSHA256SUMSfiles.tar.gzvolumes.tar.gz
  • 如果恢复到新机器,已经安装 Docker 和 Docker Compose,并把 ASP Compose 发布包解压为 asp-compose/;不需要先执行初始化。

恢复会覆盖当前数据

恢复脚本会替换当前部署文件,并清空 PostgreSQL、Redis、RustFS、定制 Python 依赖和静态文件 volumes 后写入备份数据。该操作不会自动备份当前环境。

3. 执行全量恢复

在要恢复的 asp-compose/ 目录中执行:

bash
./scripts/restore.sh /path/to/asp-full-backup

脚本会先校验 manifest、SHA-256、归档文件和 Compose 配置,再停止当前服务并执行恢复。完整恢复后会启动服务并运行 doctor.sh

如果部署文件或 volume 恢复失败,脚本不会启动服务。根据命令输出修复问题后,再重新执行恢复。

下一步