备份与恢复

数据库备份、Docker 卷备份和灾难恢复流程。

备份与恢复

定期备份是保障 OpenVort 数据安全的关键。本文档介绍数据库备份、Docker 卷备份和灾难恢复的完整流程。

备份范围

备份项优先级说明
PostgreSQL 数据库最高所有业务数据、会话记录、配置
.env 文件环境变量、密钥、LLM 配置
identity.mdAI 员工人设定义
Docker workspace 卷AI 员工工作目录中的代码和产出物

数据库备份

手动备份

# Direct pg_dump (if PostgreSQL is installed locally)
pg_dump -U openvort -d openvort -F c -f backup_$(date +%Y%m%d).dump

# Via Docker (if using containerized PostgreSQL)
docker exec openvort-db pg_dump -U openvort -d openvort -F c > backup_$(date +%Y%m%d).dump

自动备份(Cron)

创建备份脚本 /opt/openvort/backup.sh

#!/bin/bash
BACKUP_DIR=/opt/openvort/backups
DATE=$(date +%Y%m%d_%H%M)

# Database backup
docker exec openvort-db pg_dump -U openvort -d openvort -F c > "$BACKUP_DIR/db_$DATE.dump"

# Keep only last 30 days
find "$BACKUP_DIR" -name "db_*.dump" -mtime +30 -delete

echo "Backup completed: db_$DATE.dump"

添加 Cron 任务:

# Run daily at 2:00 AM
0 2 * * * /opt/openvort/backup.sh >> /var/log/openvort-backup.log 2>&1

数据库恢复

# Restore from dump file (local)
pg_restore -U openvort -d openvort -c backup_20240101.dump

# Restore via Docker
docker exec -i openvort-db pg_restore -U openvort -d openvort -c < backup_20240101.dump

恢复操作会覆盖现有数据。执行前请确认目标数据库正确,建议先在测试环境验证。

Docker 卷备份

AI 员工的工作目录存储在 Docker 卷中,可通过临时容器进行备份:

# Backup a volume
docker run --rm -v openvort_workspace:/data -v $(pwd):/backup alpine     tar czf /backup/workspace_$(date +%Y%m%d).tar.gz -C /data .

# Restore a volume
docker run --rm -v openvort_workspace:/data -v $(pwd):/backup alpine     tar xzf /backup/workspace_20240101.tar.gz -C /data

升级前备份

每次升级 OpenVort 版本前,务必执行完整备份:

# 1. Stop services
openvort stop

# 2. Backup database
docker exec openvort-db pg_dump -U openvort -d openvort -F c > pre_upgrade_$(date +%Y%m%d).dump

# 3. Backup .env and identity files
cp .env .env.bak.$(date +%Y%m%d)

# 4. Proceed with upgrade
openvort upgrade

备份策略建议

级别频率保留时长存储位置
每日备份每天 02:007 天本地磁盘
每周备份每周日 03:004 周异地存储 / 对象存储
每月备份每月 1 日 04:0012 个月异地存储 / 对象存储

灾难恢复流程

当服务器故障或数据损坏时,按以下步骤恢复:

  1. 准备新环境:在新服务器上安装 Docker 和 Docker Compose
  2. 安装 OpenVort:执行标准安装流程
  3. 恢复配置:将备份的 .env 文件和 identity.md 复制到新环境
  4. 恢复数据库:使用最近的数据库备份文件执行 pg_restore
  5. 恢复工作卷:将 Docker 卷备份恢复到对应卷
  6. 验证服务:启动服务,检查 Web 面板、AI 对话、IM 渠道是否正常

恢复后建议立即执行一次完整备份,作为新的基线。