Confluence 数据恢复演练与定期备份策略
在
一、服务器环境恢复
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
