×

一、服务器环境恢复

1、克隆镜像

生产环境镜像可以用 docker commit 或直接用已有镜像:

方式 A:使用已有镜像

生产环境有:

 confluence:20220113.1
 postgres:20220113.1

直接导出镜像即可:

 docker save -o /workspace/confluence-prod.tar confluence:20220113.1
 docker save -o /workspace/postgres-confluence.tar postgres:20220113.1
  • 这样生成的 tar 文件可以拷贝到新环境。

方式 B:容器直接 commit(如果镜像有改动)

如果生产容器里做过手动修改,可以用:

 docker commit confluence confluence-backup:20220113.1
 docker save -o confluence-backup.tar confluence-backup:20220113.1

commit 会把容器当前文件系统打包成新镜像,不会动原容器。


2、在新环境导入镜像和数据

导入镜像

 docker load -i confluence-prod.tar
 docker load -i postgres-confluence.tar

创建数据目录

 mkdir -p /workspace/atlassian/postgres
 mkdir -p /workspace/atlassian/confluence

3. 启动数据库容器

在测试机运行 Postgres(注意挂载数据目录和账号密码要与生产一致):

 docker run -d --name akuvox-postgres \
  --restart always \
  -e POSTGRES_USER=smarthome \
  -e POSTGRES_PASSWORD=Akuvox@Smarthome \
  -e POSTGRES_DB=confluence \
  -v /workspace/atlassian/postgres:/var/lib/postgresql/data \
  -p 8070:5432 \
  postgres:20220113.1

4. 启动 Confluence 容器

 docker run -d \
  --name confluence \
  --restart always \
  -p 80:8090 \
  -v /workspace/atlassian/confluence:/var/atlassian/application-data/confluence \
  --link akuvox-postgres:db \
  -e APP_NAME=confluence \
  -e RUN_GID=2002 \
  -e CONFLUENCE_LOG_STDOUT=false \
  -e TZ=Asia/Shanghai \
  -e PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
  -e LANG=en_US.UTF-8 \
  -e LANGUAGE=en_US:en \
  -e RUN_UID=2002 \
  -e CONFLUENCE_HOME=/var/atlassian/application-data/confluence \
  -e RUN_GROUP=confluence \
  -e CONFLUENCE_INSTALL_DIR=/opt/atlassian/confluence \
  -e LC_ALL=en_US.UTF-8 \
  -e JAVA_VERSION=jdk-11.0.13+8 \
  -e JAVA_HOME=/opt/java/openjdk \
  -e RUN_USER=confluence \
  --shm-size=64m \
  --entrypoint /usr/bin/tini \
  confluence:20220113.1 -- /entrypoint.py

注意和生产环境核对,尽量保证恢复一致!以上测试仅供参考!

二、文件级备份恢复

——1——

——2——

——3——

——4——

——5——

——6——

——7——

—8——

——9——

——10——

备份策略

——11——

——12——

——13——

 # 查看备份好的文件在不在
 [root@localhost ~]# cd /workspace/atlassian/confluence/backups/
 [root@localhost backups]# ls
 backup-2025_11_12.zip
 ​
 # backups/文件传到restore/下
 [root@localhost backups]# cp backup-2025_11_12.zip /workspace/atlassian/confluence/restore/
 [root@localhost backups]# cd /workspace/atlassian/confluence/restore/
 [root@localhost restore]# ls
 backup-2025_11_12.zip
 ​
 # 注意:一定要赋予777权限,否则权限不足报错
 chmod 777 backup-2025_11_12.zip

——14——

——14-没有选择——

——15——

三、常见问题

1、报错如下

——经常报错-1——

——经常报错-2——

如果搭建的数据库不是全新的,含有残留表,或者confluence.cfg.xml文件中包含过某些已有配置(不是官方初始化的源文件)可能报错,建议删除confluence.cfg.xml文件并停止confluence容器,删除confluence数据库并重建数据库。【亲测能够解决,目前未找到其他方式】

清理并重新初始化数据库的步骤

1️⃣ 确认当前数据库连接信息

进入 PostgreSQL shell:

 psql -U smarthome

列出数据库:

 \l

你应该能看到:

  Name       |  Owner     | Encoding | ...
 -------------+------------+----------
  postgres   | postgres   | UTF8
  template0   | postgres   | UTF8
  template1   | postgres   | UTF8
  confluence | smarthome | UTF8

2️⃣ 删除数据库

 DROP DATABASE IF EXISTS confluence;

3️⃣ 重新创建干净的用户与数据库

 CREATE DATABASE confluence WITH OWNER smarthome ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE template0;
 GRANT ALL PRIVILEGES ON DATABASE confluence TO smarthome;

这一步非常关键,保证数据库完全干净,没有任何旧表结构。

如果破解过,减少二次破解小技巧:

因为删除confluence.cfg.xml会导致破解数据全部丢失!

1、备份confluence.cfg.xml

2、删除confluence.cfg.xml,然后重启一遍,会出现一个新的confluence.cfg.xml,访问confluence会要求输入秘钥

3、按照下面操作编辑新的confluence.cfg.xml替换服务器ID和加入之前破解过的秘钥(通过备份的confluence.cfg.xml查看)

—破解丢失找回办法—

4、重启

5、确保数据库已经删库重建,进入时会要求重新配置数据库就是成功!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

作者

fffff@xf.nn

文章推荐