confluence站点与空间的迁移

confluence作为企业内部的知识分享平台,有着广泛的使用。笔者近期需要对confluence进行迁移,涉及到多个不同的confluence server,所以使用confluence自带的备份和还原工具过程如下,原confluence server记为Old,新confluence server记为New,为保证迁移的顺利进行,建议Old和Server至少在第二位版本号一致,比如,同为6.3.X版本:
在Old confluence上:
- 使用管理员账号登录confluence
- 选择一个项目
- 点击左侧的空间管理

- “导出”->"XML"

- 选择“全部导出”

- 导出完成后,点击下载

在New Confluence上:
- 使用管理员账号登录
- 进入系统管理

- 点击左侧“备份与还原”:

- 在“上传并恢复站点/空间备份”点击选择文件,上传在上文导出的备份文件:

如果此处备份的文件较大,也可以选择将文件上传到服务器指定目录后进行还原(强烈建议选择该方式,另外上传上去之后,一定要将该文件修改权限,可以先ls -l看confluence的用户和组,然后使用chown -R confluence:confluence backupfile命令更改,否则恢复会失败):

- 点击“上传并恢复”
- 稍等片刻,恢复成功

一些提示:
- 如果遇到恢复失败,再次尝试恢复的时候提示空间已存在,需要提前删除,但是在空间列表又看不到时,可以尝试先点开一个空间,然后将地址改为恢复失败的空间。比如,查看空间的地址为 http://192.168.1.2:8090/display/TEST,则将其中的TEST改为NEW即可访问,如果还是不知道空间的key,则可以查找mysql中的space表
- 建议先找一个需要恢复的服务器中空间多的以站点形式进行恢复,即现在原站点的“备份与还原”中选择“备份Confluence”数据:

在新的confluence中,安装完成之后先恢复该站点,然后其他空间按照上述补助逐一恢复
- confluence中预览docx等文件时可能存在中文乱码的情况,一种稍简单的解决方式是从windows服务器上把c:/windows/fonts中的中文字体传到confluence使用的jre/lib/fonts下,然后重启confluence即可,目录一般为/opt/atlassian/confluence/jre/lib/fonts,或者使用系统jvm时,为/usr/java (centos)或者usr/lib/jvm (ubuntu)