news 2026/7/9 0:30:15

OpenProject服务的备份与恢复

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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脚本定时执行,实现定时备份,自动恢复的功能

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 20:31:12

活动力度大的门头招牌企业

活动力度大的门头招牌企业在商业竞争日益激烈的今天&#xff0c;一个独特且吸引人的门头招牌对于企业的重要性不言而喻。而在众多门头招牌企业中&#xff0c;活动力度大的企业往往更受客户青睐。以贰师兄广告为例&#xff0c;它就是这样一家值得关注的企业。活动丰富&#xff0…

作者头像 李华
网站建设 2026/7/8 6:47:36

Java毕设选题推荐:基于JavaWeb的兽医站管理系统的设计与实现现代化兽医站管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/8 22:40:59

Arduino配置8266开发板

arduino ide下载网址&#xff1a; https://www.arduino.cc/en/software/ 首选项中配置ESP8266开发板地址&#xff1a; https://dl.espressif.com/dl/package_esp32_index.json http://arduino.esp8266.com/stable/package_esp8266com_index.json 开发板管理中搜索ESP8266后安…

作者头像 李华
网站建设 2026/7/9 11:35:05

【课程设计/毕业设计】基于SpringBoot+Vue茶叶销售系统的设计与实现基于Java语言的茶叶销售系统的前端设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/8 22:37:14

41. 缺失的第一个正数

41. 缺失的第一个正数 困难 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a…

作者头像 李华