confluence索引重建特别慢如何解决。
1、备份完整数据库。
这是非常关键的操作。因为接下来要操作到数据库。
mysqldump -u用户名 -p confluence >/app/confluence/backup/confluencedb.sql
2、撤销索引(关键步骤)
ALTER TABLE `CONTENT` DROP INDEX`c_status_idx`;
这一步取决于content表中的数据量。我们公司环境中大概18万多条记录。耗时大约14分钟。需要耐心等待。
3、优化配置,提升索引重建速度(可选操作)
编辑confluence的bin目录中的setenv.sh文件。
设置如下
CATALINA_OPTS="-Dindex.queue.thread.count=13${CATALINA_OPTS}"
CATALINA_OPTS="-Dindex.queue.batch.size=2000${CATALINA_OPTS}"
CATALINA_OPTS="-Dconfluence.reindex.documents.to.pop=40${CATALINA_OPTS}"
CATALINA_OPTS="-Dconfluence.reindex.attachments.to.pop=20${CATALINA_OPTS}"
下面分别解释一下含义:
index.queue.thread.count=13 表示重新索引可以使用的线程数量大小。我这里根据机器上的CPU核数+1,过多,也不好。
index.queue.batch.size=2000 表示Confluence索引可以使用的批次。减少这个值将会降低索引时候的系统消耗,但是会增加索引所需要的系统时间让索引将会花费更多的时间。增加这个值将会让索引更快的完成,但是也会增加系统的复杂,降低系统性能。通常的情况下,这个设置不需要进行修改,默认值是1500。
confluence.reindex.documents.to.pop=40 表示 Confluence在进行全部重索引的时候确定一个线程可以索引多少对象。请注意,这个参数不包括附件。默认值是20。
confluence.reindex.attachments.to.pop=20表示Confluence在进行全部重索引的时候确定一个线程可以索引多少附件。默认值是10。
4、重启Confluence,启动索引重建。
如图所示,这次不到7分钟就重建完成。
5、关闭Confluence,恢复和取消相关临时配置。
a.删除第3步中的临时配置。
b.恢复第2步中撤销的索引。这一步耗时不到5分钟。比撤销时快。
ALTER TABLE `CONTENT` ADD INDEX c_status_idx (`CONTENT_STATUS`);
重启Confluence。好了。权限限制的地方,人员选择下拉列表功能恢复正常了。最新动态也更新了。