当前位置: 首页 > news >正文

OpenProject服务的备份与恢复

1. 参考

  1. Backing up your OpenProject installation
  2. Restoring an OpenProject backup
  3. Linux安装OpenProject

2. 环境

  1. Docker compose部署的OpenProject服务
  2. 服务器192.168.7.28 作为主服务器,预装OpenProject服务,提供生产环境
  3. 服务器192.168.15.96 作为备份服务器,预装OpenProject服务,作为备份环境

3. 流程

  1. 服务器192.168.7.28 备份OpenProject服务的Postgresql数据库
  2. 服务器192.168.15.96使用rsync命令同步OpenProject服务的配置文件(docker-compose.yml)、存储文件(assets)、Postgresql数据库备份文件
  3. 服务器192.168.15.96恢复Postgresql数据库备份文件

4. 备份Postgresql数据库

dockerexecopenproject-db-1 pg_dump -U postgres -d openproject --insert>"/public/postgresql/pgsqlbackup/pgsql_openproject.sql"
  • openproject-db-1:posgresql的容器名称
  • -U postgres:连接数据库账号
  • -d openproject: 备份数据库名称
  • –insert 生成insert语句的备份文件
  • “/public/postgresql/pgsqlbackup/pgsql_openproject.sql” :备份文件存储路径

5. 恢复备份文件

5.1 服务器192.168.15.96同步备份文件

  • 同步主服务器192.168.7.28下OpenProject目录(排除postgresql数据库目录)
/bin/rsync -avz --exclude='/postgresql/'--delete-after root@192.168.7.28:873/public/application/openproject/ /public/application/openproject/
  • 同步主服务器192.168.7.28下OpenProject的数据库备份文件
/bin/rsync -avz --delete-after root@192.168.7.28:873/public/postgresql/pgsqlbackup/pgsql_openproject.sql /public/postgresql/pgsqlbackup/

5.2 服务器192.168.15.96恢复数据库备份

  • 定义环境变量
# 定义备份数据库名字DBNAME="openproject"# 定义postgresql容器名称CONTAINER_NAME="openproject-db-1"# 定义docker-compose.yml文件位置,停止openproject服务需要使用DOCKER_COMPOSE_YML="/public/application/openproject/docker-compose.yml"# 需要预先停止的docker compose 服务SERVICE_NAME="web worker"
  • 停止openproject项目的web worker,删除数据库
# 停止openproject项目的web worker,删除数据库docker compose -f${DOCKER_COMPOSE_YML}kill${SERVICE_NAME}\&&dockerexec${CONTAINER_NAME}psql -U postgres -c"DROP DATABASE IF EXISTS${DBNAME};"
  • 重建openproject数据库
# 重建openproject数据库dockerexec${CONTAINER_NAME}psql -U postgres -c"CREATE USER openproject;"dockerexec${CONTAINER_NAME}psql -U postgres -c"CREATE DATABASE openproject OWNER${DBNAME};"
  • 导入数据库备份,初始化数据库,重启web、work服务
# 导入数据库备份,初始化数据库,重启web、work服务dockerexec-i${CONTAINER_NAME}psql -U postgres -d${DBNAME}<"/public/postgresql/pgsqlbackup/pgsql_openproject.sql"\&&docker compose -f${DOCKER_COMPOSE_YML}start seeder\&&docker compose -f${DOCKER_COMPOSE_YML}start${SERVICE_NAME}

6. 检查服务状态

cd/public/application/openproject/\&&docker composeps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS openproject-autoheal-1 willfarrell/autoheal:1.2.0"/docker-entrypoint …"autoheal About an hour ago Up About an hour(healthy)openproject-cache-1 memcached"docker-entrypoint.s…"cache About an hour ago Up About an hour11211/tcp openproject-cron-1 openproject/openproject:16-slim"./docker/prod/entry…"cronAbout an hour ago Up About an hour8080/tcp openproject-db-1 postgres:17"docker-entrypoint.s…"db About an hour ago Up About an hour5432/tcp openproject-proxy-1 openproject/proxy"caddy run --config …"proxy About an hour ago Up About an hour443/tcp,2019/tcp,443/udp,0.0.0.0:8899->80/tcp,[::]:8899->80/tcp openproject-web-1 openproject/openproject:16-slim"./docker/prod/entry…"web About an hour ago Up About an hour(healthy)8080/tcp openproject-worker-1 openproject/openproject:16-slim"./docker/prod/entry…"worker About an hour ago Up About an hour8080/tcp

6. 补充说明

上述命令为简化示例,可以编写成Shell脚本定时执行,实现定时备份,自动恢复的功能

http://www.cnnetsun.cn/news/92251.html

相关文章:

  • 活动力度大的门头招牌企业
  • 【毕业设计】基于JavaWeb的兽医站管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • Java毕设选题推荐:基于JavaWeb的兽医站管理系统的设计与实现现代化兽医站管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Arduino配置8266开发板
  • 【课程设计/毕业设计】基于SpringBoot+Vue茶叶销售系统的设计与实现基于Java语言的茶叶销售系统的前端设计与实现【附源码、数据库、万字文档】
  • 41. 缺失的第一个正数
  • 打了一堆板子,才发现是VDD_EXT的锅
  • 技术亲民倒计时!飞猫 RedCap 轻量化 5G 随身 WiFi 即将上市!
  • # 深入 Ascend C 内存模型:掌握UB、GM与流水线优化,打造极致AI算子
  • 冥想第一千七百三十五天(1735)
  • 代理IP和普通IP有什么区别?这篇文章帮你捋明白
  • 体系结构分类和指令系统
  • 基于AI数字人系统源码的低成本开发方案与实践经验
  • SQL 调优全解:从 20 秒到 200 ms 的 6 步实战笔记(附脚本)
  • YOLO目标检测模型如何对接Apipost平台
  • 简单的创建一个Spring Boot网页
  • 鼠标滚轮缩放图片:前端实现高清无损放大技巧(附实战代码)
  • Numpy库实践2_索引和数组的操作
  • 图解 - 红黑树(插入)
  • Memgraph 全新 AI 图工具包:一键构建 GraphRAG 聊天机器人,实现快速上下文感知响应
  • 初始化列表和特殊成员
  • (二)前端基础框架构建
  • vLLM推理引擎教程6-Nsight Systems性能分析
  • 基于MATLAB的燃料电池汽车参数匹配与能量管理策略优化及仿真模型研究资料库
  • AM247L-0000伺服电机
  • DoraemonKit(DoKit)使用教程:从集成到实战
  • 构筑 AI 理论体系:深度学习 100 篇论文解读 第十九篇:序列建模的焦点——注意力机制 Attention Mechanism (2015)
  • 【小白笔记】移除元素与删除有序数组中的重复项与轮转数组(三步反转)
  • 什么是关键字驱动测试?
  • 前沿技术借鉴研讨-2025.12.16(超声心动图综述/妊娠期糖尿病/降低CTG解读主观性)