010-68421378
sales@cogitosoft.com
当前您所在的位置:首页>新闻中心>行业动态

SonarQube升级指南

发布时间:2021/11/16 浏览量:2086
这是跨版本 SonarQube 升级的通用指南。 仔细阅读目标版本和任何中间版本的版本升级说明。

SonarQube升级指南

这是跨版本 SonarQube 升级的通用指南。 仔细阅读目标版本和任何中间版本的版本升级说明。

在升级之前,我们建议在尽可能类似于您的生产环境的临时环境中练习升级。

在升级之前,请备份您的 SonarQube 数据库。 升级问题很少见,但如果发生任何事情,您将需要备份。

升级之前

此页面包含升级前应熟悉的一些概念和建议。

SonarQube 版本号格式

版本号最多由三位数字组成,每个数字代表发布周期的一部分:

 

主要版本号
主要版本号代表一系列发布,具有发布周期的高级目标。 它随着 LTS 版本之后的版本而增加(例如,7.9 LTS 之后的版本是 8.0)。

次要版本号
次要版本号对应于主要发布周期内的增量功能更改。 在 LTS 发布时,发布周期关闭,次要版本号被冻结。

补丁版本号
仅在 LTS 版本上,补丁版本号代表 LTS 的补丁,用于修复阻止程序或关键问题。 升级迁移路径中不考虑补丁版本号,无论您使用哪个补丁号,您的迁移路径都是相同的。

迁移路径

跨多个非 LTS 版本的升级是自动处理的。 但是,如果您的迁移路径中有一个或多个 LTS 版本,您必须先迁移到每个中间 LTS,然后再迁移到目标版本,如下例 3 所示。

如果您从 LTS 的早期补丁版本迁移,您可以直接升级到下一个 LTS。 您不需要安装任何中间补丁版本。

迁移路径示例:

示例 1 – 从 8.1 > 9.0,迁移路径为 8.1 > 8.9.1 LTS > 9.0

示例 2 – 从 8.2 > 8.9 LTS,迁移路径是 8.2 > 最新的 8.9 LTS 补丁。

示例 3 – 从 6.7.7 LTS > 8.9 LTS,迁移路径为 6.7.7 LTS > 7.9.6 LTS > 最新的 8.9 LTS 补丁。

版本升级说明

通常,SonarQube 版本会附带一些从以前版本升级的具体建议。 您应该阅读当前版本和目标版本之间每个版本的版本升级说明。

练习升级

我们建议您先练习升级到:

要练习升级,请使用生产数据库的最新备份创建一个临时环境。 您希望登台环境与生产实例尽可能相似,因为升级所需的资源和时间取决于数据库中存储的内容。 使用此暂存环境来测试升级,观察备份和恢复系统以及完成该过程所需的时间。

数据库磁盘使用建议

在升级期间,可能会复制表以加快迁移过程。 这可能会导致您的数据库磁盘使用量暂时增加到正常使用量的两倍。 因此,在开始迁移之前,我们建议您的数据库磁盘使用率低于 50%。

从 ZIP 文件升级

从 Docker 镜像升级

如果您使用 Oracle 数据库升级或使用插件,您可以重复使用以前版本的扩展卷以避免移动插件或驱动程序。 使用插件版本矩阵确保您的插件与您的版本兼容。 默认情况下,无需插件即可分析您的版本提供的所有语言。

要使用 Docker 映像升级 SonarQube:

$ docker stop <container_id>

$ docker rm <container_id>

$> docker run -d --name sonarqube \

    -p 9000:9000 \

    -e SONAR_JDBC_URL=... \

    -e SONAR_JDBC_USERNAME=... \

    -e SONAR_JDBC_PASSWORD=... \

    -v sonarqube_data:/opt/sonarqube/data \

    -v sonarqube_extensions:/opt/sonarqube/extensions \

    -v sonarqube_logs:/opt/sonarqube/logs \

    <image_name>

从 8.9.x LTS 到另一个 8.9.x LTS

不需要特定的 Docker 操作,只需使用新标签即可。

从 Helm Chart 升级

如果您使用 Oracle 数据库升级或使用插件,您可以重用以前版本的扩展 PVC 以避免移动插件或驱动程序。 使用插件版本矩阵确保您的插件与您的版本兼容。 默认情况下,无需插件即可分析您的版本提供的所有语言。

要使用我们的官方 Helm Chart 升级 SonarQube:

helm upgrade --install -f values.yaml -n <your namespace> <your release name> <path to sonarqube helm chart>

回滚

如果您需要恢复到之前版本的 SonarQube,所有部署的高级回滚过程如下:

更改您的版本

如果您要迁移到同一 SonarQube 版本中的不同版本(例如,从社区版到商业版),则步骤与上述完全相同,无需导航到 http://yourSonarQubeServerURL/setup 或重新分析 你的项目。

从 ZIP 文件实例迁移到 Docker 实例

从 ZIP 文件迁移到 Docker:

其他步骤和信息

Oracle清理

从 6.6 版开始,如果您使用 Oracle,您可能需要执行一个额外的步骤。 在 Oracle 上,要删除的数据库列现在标记为 UNUSED,不再物理删除。 要回收磁盘空间,Oracle 管理员必须手动删除这些未使用的列。 SQL 请求是 ALTER TABLE foo DROP UNUSED COLUMNS。 相关表列在系统表 all_unused_col_tabs 中。

额外的数据库维护

我们建议您在完成技术升级后,但在重新分析项目之前,刷新数据库的统计信息并重建数据库的索引。

对于 PostgreSQL,这意味着执行 VACUUM FULL。 根据 PostgreSQL 文档:

在正常的 PostgreSQL 操作中,被更新删除或废弃的元组不会从它们的表中物理删除; 它们一直存在,直到完成 VACUUM。

扫描仪更新

升级 SonarQube 时,您还应该确保使用最新版本的 SonarQube 扫描仪,以利用扫描仪端的功能和修复。 请检查您使用的扫描仪的文档页面,了解与 SonarQube 和您的构建工具兼容的最新版本。

SonarQube 作为 Linux 或 Windows 服务

如果您使用外部配置(例如脚本或 Windows 服务)来控制您的服务器,则需要将其更新为指向 $NEW_SONAR_HOME。

sc config SonarQube binPath= "\"$NEW_SONAR_HOME\bin\windows-x86-64\wrapper.exe\" -s \"$NEW_SONAR_HOME\conf\wrapper.conf\""

重建索引

如果您的升级需要重建 Elasticsearch 索引,您的项目和应用程序将在重新索引后变得可用。 在对所有项目编制索引之前,资料将不可用。

下一篇:Atlanssian:Confluence升级
上一篇:使用 VisualARQ Grasshopper 组件增强您的工作流程

                               

 京ICP备09015132号-996网络文化经营许可证京网文[2017]4225-497号 | 违法和不良信息举报电话:4006561155

                                   © Copyright 2000-2023 北京哲想软件有限公司版权所有 | 地址:北京市海淀区西三环北路50号豪柏大厦C2座11层1105室

                         北京哲想软件集团旗下网站:哲想软件 | 哲想动画

                            华滋生物