confluence迁移及问题解决(实践篇)
一、confluence简介Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。二、迁移环境以下为本次的安装环境操作系统:centos7.9jdk版本:1.8数据库版本:mariadb-10.4.11confluence版本:6.7.1nginx版本:1.20三、迁移操
一、confluence简介
Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送。
二、迁移环境
以下为本次的安装环境
操作系统:centos7.9
jdk版本:1.8
数据库版本:mariadb-10.4.11
confluence版本:6.7.1
nginx版本:1.20
三、迁移操作
原来的confluence环境在本地机房环境,现有需要将confluence环境迁移到阿里云环境,需求就是无缝切换,原数据也需要迁移到新环境中。
1、在新环境安装部署confluence环境,本篇不再介绍,伙伴们可以参考我的上一篇,有详细介绍,具体请见下面链接。
2、将原有的confluence数据目录下的所有数据迁移到现有环境,由于原来的数据量比较大,建议使用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"/> #添加下面这行
注:
以上为本人实际搭建过程中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!
更多推荐
所有评论(0)