数据目录、备份与升级
最近更新:
备份需要同时保留 AGW 的配置和记录、加密密钥,以及项目文件。只复制安装目录,或只保存代码仓库,都可能遗漏恢复服务所需的数据。
开始前,确认实际数据库、数据目录和各 Project 工作目录的位置;下面的默认路径仅用于帮助定位,以运行中的配置为准。
数据范围
AgwDataDir 默认 ~/agw,Docker 使用 /data。路径支持 ~,其他相对路径相对进程工作目录解析。默认的 SQLite 数据库文件是 <AgwDataDir>/database/agw.db,Docker 中为 /data/database/agw.db。
需要一起保存:
- 数据库,包括
setting、api_token、会话和执行记录。 - 数据目录中的
keys/和skills/。 - 部署配置及其秘密引用,实际秘密通过安全存储备份。
- 各 Project 主目录与附加目录中的业务文件,使用独立文件备份策略。
日志目录独立于数据目录;日志和临时文件不属于认证恢复必需数据。丢失 Data Protection 密钥可能使已保护凭据无法读取。
先列出备份清单
记录数据库位置、AgwDataDir 的实际值、各 Project 的目录及当前程序版本。项目使用文件型 Memory 时,还要包含主目录下的隐藏目录 .agw/memory/;数据库型 Memory 随数据库保存。表单默认的主目录 ~/.agw/<项目文件夹名> 和 Server 默认的 ~/.agw/projects/{projectId:N} 都位于运行 Server 的账号的主目录下,不在 AgwDataDir 中;Docker 中也不在 /data 卷内,需要另外挂载并备份。
备份数据库和文件前,先等待任务结束或中断任务,避免备份期间仍有写入。SQLite 的简单做法是停止 Server 后复制数据库及相关文件;PostgreSQL 使用自己的备份工具。数据目录和项目目录可能在不同位置,应逐项核对,不能假定它们都在 /data 内。
升级顺序
- 阅读目标 Release 说明,记录当前镜像或安装包版本。
- 停止全部旧版 Standalone、Control Plane 和 Data Plane 进程,取得一致性备份:SQLite 简单部署可在停止后复制文件;PostgreSQL 使用数据库自身的备份机制。
- 应用新版本对应数据库的迁移(SQLite 或 PostgreSQL 其中一套)。已初始化的 Server 正常启动时不会自动执行迁移,只有首次 Setup 会执行;源码部署可使用 Development Guide 中按数据库区分的命令。
- 更新 Server 与客户端,保留数据、Data Protection 密钥和目录挂载,再启动新版本。新版 Host 在接受请求和启动 Worker 之前,会检查并升级正在进行的执行记录;某条记录无法解密或验证失败时,Host 启动报错,需要修正数据后重新启动。
- 验证初始化状态、登录、Project 文件和一个小任务;分离部署还需验证 worker 与 Job。
AGW 在 1.0 前的升级可能包含 schema 变更。回滚时需要使用彼此兼容的程序版本、数据库备份和密钥备份。
恢复验证
优先在隔离环境验证备份能恢复,确认凭据可解密、文件路径可见。更改数据或日志根目录需要重启并自行迁移文件,不会自动搬运已有数据。