Confluence跨大版本升级记录

初始版本7.4.18最终升级到了目前的最新版本8.7.1,在升级过程中遇到了很多问题,庆幸的是最后都解决了,记录一下。

背景

初始环境:

OS:CentOS8.5

DB:10.8.8-MariaDB

Confluence:7.4.18

公司使用的这个平台很多年了,从起初Windows server+SqlServer+Confluence6.x架构慢慢升到7.4.18,之前被勒索病毒入侵过,搞过P2V从物理机迁到虚机上过,从Windows迁到Linux过;

太多心酸,最终保护的就是数据,虽然之前因备份不及时线上数据被加密丢失过几个月的数据。

最近上级安全部门又扫描到有漏洞,需要立即整改,安全同事迫于压力只能先封停外网访问,这个时间就要研究版本升级问题;

之前我也尝试过从7.4.18升级至7.13.x版本,没成功,所以一直在用7.4.18,期间遇到漏洞就找Atlassian官方相关说明,不敢做版本升级了;

这次听说其他部门有从6.x升级到最新8.7.1版本的成功案例,也请教了他们,最终解决了升级中的问题。

升级

0x00 由于数据量大,所以我升级都是先安装部署新版本的环境,然后再将附件目录数据同步到新环境的附件目录,然后将老环境的数据库备份出来,在新环境上还原数据库;

         之前6.x升级到7.x都能正常升级,从7.4.x升级到7.13.x时总是报数据库的问题,也就是数据库的表结构有变化。

1、之前使用的破解授权,大佬说遇到过破解的jira升级时,数据库乱码,解决方法是将破解授权改为使用授权;

2、大佬还提了一个问题是,我之前用的MariaDB,后面的新版本不支持MariaDB了,需要改成MySQL;

下面记录一下我做的尝试:

A、从7.4.18的10.8.8-MariaDB备份数据,到7.13.20版本的MariaDB上恢复数据,报错

B、从7.4.18备份站点的xml包恢复到7.13.20环境,报错

C、将备份的7.4.18的数据库升级到MySQL8.0.35,再将线上7.4.18 MariaDB的数据备份再MySQL上恢复,成功了

D、再从备份的7.4.18+MySQL的数据备份,在新环境.13.20+MySQL 8.0.35上恢复数据,成功,但管理用户时报错,报错说有个列名external_id找不到,这里找了经常操作数据库的同事给查看了表结构,找到新版本数据库cwd_group表里增加了一列叫external_id

在新版本里的环境里查看external_id列属性,表里是否有数据,庆幸的时只添加了列名并没有数据,所以在新环境中在cwd_group表里添加上这个列名就解决了这个问题;

这里有个查询所有列名的方法在information_schema数据库里查询columns表:

E、尝试升级到比较新的7.19.17版本,恢复数据库都能正常恢复,但是启动服务时会报错,通过查看日志文件atlassian-confluence.log,主要有如下几种原因

a、缺少列名,参考上面的方法,先在新环境的数据库查询需要的列是在哪个表,在对应的表里添加相应的列就可以。

b、表已存在,不能再创建,这种看了下这个表里其实没有数据,所以可以直接删掉

c、数据库里保存的baseurl与实际的IP不一致,需要改数据库里的baseurl(8.7.1版本里这个报错不会造成起不来服务,可以启动了服务在页面上改)

查询数据库里的baseurl

select BANDANAVALUE
from BANDANA
where BANDANACONTEXT = '_GLOBAL'
and BANDANAKEY = 'atlassian.confluence.settings';

修改数据库里的baseurl

update BANDANA 
set BANDANAVALUE = replace(BANDANAVALUE, 'http://old_url', 'http://new_url') 
where BANDANACONTEXT = '_GLOBAL' 
and BANDANAKEY = 'atlassian.confluence.settings';

F、从7.19.17到8.7.1版本,Confluence的附件存储方式也做了升级,从以往的ver003升级到了v4,现象就是7.xx版本的附件目录名称为ver003,8.xx版本的附件目录为v4

Confluence8.xx版本自己做了v3-to-v4的执行任务,触发的条件就是在附件目录存在ver003目录,服务启动后会自己迁移到v4目录下,并记录日志

分层文件系统附件存储 |Confluence 数据中心和服务器 8.7 |Atlassian 文档

G、升级后,Confluence无法启动,主目录中的内部版本号与数据库中的内部版本号不匹配

Confluence 不会启动,因为主目录中的内部版本号与数据库中的内部版本号不匹配,升级后 |汇合 |Atlassian 文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「 典型安全漏洞系列 」02.SQL注入详解

引言:SQL注入是一个老生常谈且又非常重要的漏洞,导致许多热点的数据泄露事件。尽管学习起来相对简单,但它可能用于某些高危漏洞的利用。这使得它成为初学者的兴趣点,甚至对于更有经验的用户来说,SQL注入也是基本知识。…

自动化测试框架详解

自动化测试框架是一套工具、库和规范的集合,用于支持和简化自动化测试的开发、执行和管理。 提供一种结构化的方法来编写、组织和执行自动化测试用例,并提供一些常用的功能和工具,例如测试用例管理、结果报告生成、测试数据管理、日志记录等…

【Docker】Linux中Docker技术入门与实战及实用的常规命令

目录 一、引言 1. 说明: 2. Linux介绍 3. Docker简介 二、Docker三要素 1. 镜像(Image) 2. 容器(Container) 3. 仓库(Repository) 三、实现案例 1. 创建 2. 设置镜像 3. 开启设置 …

Win10下python3和python2同时安装并解决pip共存问题

特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。 使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。 1、下载…

基于WebRTC技术的EasyRTC视频云服务系统在线视频客服解决方案

一、需求分析 随着互联网技术的发展,视频客服也成为服务行业的标配体验,基于WebRTC实时通信技术,客服人员与用户可以建立实时双向的视频交互与沟通。借助视频客服功能可以更加直观地了解用户的需求,提高沟通效率,并帮…

Unity获取系统语言

大家好,我是阿赵。   在使用Unity引擎做多语言的游戏时,很有可能需要根据用户的手机或者电脑的当前语言来设置游戏的默认语言。   Unity的API里面默认就有可以获取系统语言的方法: Application.systemLanguageUnity的API例子&#xff1a…

小家电应用解决方案以及选型指南

电磁炉是现代厨房中常见的一种小家电产品,它利用电磁感应加热原理,可以快速、高效地进行烹饪。在电磁炉的设计和制造过程中,功率开关芯片的选择对于产品的性能和成本有着重要的影响。 针对电磁炉的应用需求,推荐采用LED驱动芯片S…

.NET开源、强大的Web报表统计系统

前言 今天分享一个.NET开源、强大的Web报表统计系统:CellReport。 项目官方介绍 CellReport 诞生的初衷是为了解决日常快速制作统计报表的需要。 CellReport 是一个为复杂统计报表为核心目标的制作、运行工具。你可以使用数据库、excel文件、api服务、已有报表等为…

vue3 指令详解

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录前言一、v-model (双向绑定功能)二、v-bind(用于将一个或多个属性绑定到元素的属性或组件的 prop)三、v-if、v-else、v-else-if(用于根据条件选择性地渲染元素)四、v-show(根…

【算法系列 | 12】深入解析查找算法之—斐波那契查找

序言 心若有阳光,你便会看见这个世界有那么多美好值得期待和向往。 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法,从概念到示例。 我们一起努力,成为更好的自己! 今天第12讲,讲…

用MATLAB求最短路径(graphshortestpath)和求最小生成树(minspantree),代码演示

求最短路径(graphshortestpath),求最小生成树(minspantree) 文章目录 求最短路径(graphshortestpath),求最小生成树(minspantree)1、最短路径问题2、最小生成…

如何快速取消开始右下角的更新并关机

关机时,隔几天老是会跳出来有更新并关机,想要直接关机又没有办法。怎么办?往下看 找到设置,进去 找到更新和安全 找到Windows更新 找到高级选项,把这些都关闭,然后在下面可以许安则暂停截止日期&#…

芯片设计中的ECO

如标题所写,我们今天聊一聊IC设计种的ECO。在展开关于ECO的概念之前,我们先大致捋下数字IC设计的流程,有助于我们后面的讨论。 数字IC设计流程简述 1、确定项目需求 根据市场或者芯片功能要求,设计芯片的spec,得到可…

模型评估:A/B测试的陷阱

互联网公司中,A/B测试是验证新模块、新功能、新产品是否有效;新算法、新模型的效果是否有提升;新设计是否受到用户欢迎;新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B测试是验证模型最终效果的主要手段…

StarRocks Awards 2023 年度贡献人物

2023 年行将结束。这一年,StarRocks 继续全方位大步向前迈进,在 300 贡献者的辛勤建设下,社区先后发布了 50 版本,并完成了从全场景 OLAP 到云原生湖仓的进化。 贡献者们的每一行代码、每一场布道,推动着 StarRocks 社…

【AIGC-文本/图片生成视频系列-8】Align your Latents: 基于潜在扩散模型的高分辨率视频合成

目录 一. 项目概述与贡献 二. 方法详解 三. 应用总览 四. 个性化视频生成 五. 实时卷积合成 六. 更多结果 七. 论文 八. 个人思考 AI生成高分辨率视频一直是一个挑战。 今天讲解一篇潜在扩散模型(LDM)用于高分辨率、时间一致且多样化的视频生成…

【清华社机器之心】视频生成前沿研究与应用特别活动

在视频生成即将迎来技术和应用大爆发之际,为了帮助企业和广大从业者掌握技术前沿,把握时代机遇,机器之心AI论坛就将国内的视频生成技术力量齐聚一堂,共同分享国内顶尖力量的技术突破和应用实践。 论坛将于2024.01.20在北京举办&am…

RT-Thread 线程间通信

线程间通信 在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取,根据读取到的全局变量值执行相应的动作,达到通信协作的目的。 邮箱 …

Unity中向量的点乘、叉乘区别和作用以及经典案例

文章目录 点乘(Dot Product)叉乘(Cross Product)向量归一化(Normalize)其他作用 unity开发中我们要计算角度,判断位置,常用点乘、叉乘、归一化等等,我们看看他们的使用案…

Flashduty 案例分享 - 途游游戏

Flashduty 作为功能完备的事件OnCall中心,可以接入云上、云下不同监控系统,统一做告警降噪分派、认领升级、排班协同,已经得到众多先进企业的认可。我们采访了一些典型客户代表,了解他们的痛点、选型考虑和未来展望,集…