SuperAPI AI 工具集

odoo-backup-strategy

部署与运维

查看项目

更新于 10-16 03:50

技能介绍

Odoo Backup Strategy 是一套面向 Odoo 实例的完整备份与恢复方案,强调一次完整备份必须同时包含 PostgreSQL 数据库和 filestore(附件、图片)。技能覆盖手动与自动备份流程、异地存储,以及让宕机的 Odoo 重新上线的正确恢复顺序。

用途

  • 为生产环境 Odoo 实例建立备份策略。
  • 使用 shell 脚本和 cron 实现每日自动备份。
  • 在服务器故障或数据损坏后恢复 Odoo。
  • 诊断失败的备份或损坏的恢复结果。

主要能力

  • 生成针对具体服务器环境定制的完整备份脚本。
  • 提供任意故障场景下的分步恢复指令。
  • 支持手动备份:pg_dump 导出数据库,tar 打包 filestore。
  • 支持通过 cron 定时执行,例如每天凌晨 2 点运行。
  • 支持备份后上传至 S3,并可清理超过 7 天的本地备份。

使用方式

提及 @odoo-backup-strategy 并描述服务器环境后,可获得定制化脚本;按需选择手动备份、自动化调度或恢复流程。手动备份示例使用 pg_dump -Fc 导出数据库、tar -czf 打包 filestore;自动化示例在 crontab 中添加定时任务;上传示例使用 aws s3 cp 将数据库转储和 filestore 压缩包分别上传到 S3 存储桶。

恢复流程

  1. 停止 Odoo(docker compose stop odoo 或 systemctl stop odoo)。
  2. 重建并恢复数据库:先 dropdb 再 createdb,然后执行 pg_restore;因为单独使用 --clean 在数据库不存在时会失败。
  3. 清空 filestore 目录并解压备份压缩包。
  4. 重启 Odoo。
  5. 在浏览器中验证:能否登录、近期记录是否可见、附件是否正常加载。

最佳实践

  • 每月在暂存环境测试恢复。
  • 遵循 3-2-1 规则:3 份副本、2 种不同介质、1 份异地副本。
  • 每次 Odoo 升级前立即备份,作为回滚点。
  • 用 pg_restore --list 验证备份完整性。
  • 不要只备份数据库而忽略 filestore;不要在 Odoo 同一磁盘或服务器上存放备份;不要对不存在的数据库执行 pg_restore --clean。

限制

  • 不覆盖 Odoo.sh 内置备份,Odoo.sh 有自己可从仪表板访问的备份系统。
  • 脚本假定单数据库 Odoo 环境,多数据库实例需遍历所有数据库。
  • filestore 路径可能因安装方式(Docker 卷或裸机)不同,恢复前应用 odoo-bin shell 确认路径。
  • 大型 filestore(100GB 以上)可能需要 rsync 或 restic 等增量备份工具,而非完整 tar.gz 归档。