confluence迁移及问题解决(实践篇)

2022-09-02 13:19:11

一、confluence简介

Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。

二、迁移环境

以下为本次的安装环境
操作系统:centos7.9

jdk版本:1.8

数据库版本:mariadb-10.4.11

confluence版本:6.7.1

nginx版本:1.20

三、迁移操作

原来的confluence环境在本地机房环境,现有需要将confluence环境迁移到阿里云环境,需求就是无缝切换,原数据也需要迁移到新环境中。

1、在新环境安装部署confluence环境,本篇不再介绍,伙伴们可以参考我的上一篇,有详细介绍,具体请见下面链接。

confluence安装部署详细介绍

2、将原有的confluence数据目录下的所有数据迁移到现有环境,由于原来的数据量比较大,建议使用rsync+sersync的方式进行传输。

        本篇不再具体介绍,小伙伴可以参照之前的文章进行配置,具体请见下面的链接。

rsync+sersync数据实时同步详细介绍

3、将原来的confluence的数据库进行备份,然后倒入到新库中。

4、重启confluence,进行测试。

5、安装nginx,配置代理和证书,增加访问的安全性。

四、问题及解决

问题1

问题表现:

将原confluence数据目录迁移到现有环境中后,重启confluence后,访问发现报错,提示大概是权限的问题。

问题解决:

rsync迁移的时候只是迁移了目录结构和数据,用户组和用户并没有进行设置,需要将目录的属组设置为现有环境的属组。

问题2

问题表现:

数据库备份完成后,在将老数据倒入到新库的时候,出现报错。

1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

问题解决:

网上找了好多文章,都说改成将InnoDB的引擎改为MyIsam引擎就可以了,但是我操作了好多遍,问题依然没有解决,可能是方法不适用吧。下面是我的解决方法。

修改mariadb进入到非严格模式,然后重启mariadb,进行测试。

vim /etc/mysq.cnf.d/server.cnf                                                #进入到mariadb的配置文件中

[mysqld]                                                                                 #在[mysqld] 下面进行编辑

innodb_strict_mode = 0                                                        #设置为非严格检查模式,

1

systemctl restart mariadb                                                       #重启

注:使用mysql严格模式可以使数据更加安全严格,缺点是减少了对空数据入库的兼容性。建议开发环境使用严格模式以提高代码的质量及对数据的严谨性。

问题3

问题表现:

将原数据库倒入到新库后,重启confluence之后进行访问,发现报错。

checkConfigurationOnStartup Detected tables with non-default collation.

 问题解决:

报错提示:检测到具有非默认排序规则的表。所以定位到应该是数据库的问题,表不是默认的排序规则。

MariaDB [(none)]> ALTER DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

问题4

问题表现:

confluence迁移后,访问的时候,confluence加载很慢,反应很久才会有响应。

问题解决:

访问慢的原因很复杂,一般有以下几个原因:

        1、硬件问题,CPU,内存等硬件资源不足。

        2、confluence本身的优化配置。

vim application-data/confluence/confluence.cfg.xml                                #打开confluence数据目录下的配置文件

<property name="hibernate.c3p0.acquire_increment">10</property>         #默认为1

<property name="hibernate.c3p0.idle_test_period">100</property>

<property name="hibernate.c3p0.max_size">60</property>

<property name="hibernate.c3p0.max_statements">60</property>#默认为0

<property name="hibernate.c3p0.min_size">20</property>

<property name="hibernate.c3p0.timeout">120</property>#默认为30

         3、将confluence的JVM调到合适位置。

vim confluence/bin/setenv.sh                                        #打开confluence的家目录下的setenv.sh文件

CATALINA_OPTS="-Xms2048m -Xmx3072m -XX:+UseG1GC ${CATALINA_OPTS}"                #调整到合适的位置,不宜过大或过小

         4、打开浏览器的开发模式,观察访问慢的具体信息进行分析。

问题5

问题表现:

实现confluence二级域名访问,本人采用的是,nginx代理实现的,但是会出现以下错误。

tomcat config is incorrect
the tomcat server.xml has an incorrect configuration
scheme should be https proxyName should be confluence.im-dangdang.com
proxyPort should be  443

问题解决:

因为confluence是在tomcat的基础修改实现的,所以tomcat也需要做对应修改。

vim /confluence/conf/server.xml                                                                                                                           #进入到confluence家目录的server.xml文件下

scheme="https" secure="true" proxyName="您的域名" proxyPort="443"/>                        #添加下面这行

注:

以上为本人实际搭建过程中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!

  • 作者:在路上的阿帅
  • 原文链接:https://blog.csdn.net/tiny_du/article/details/119545661
    更新时间:2022-09-02 13:19:11