当前您所在的位置:首页>新闻中心>行业动态
新品发布
行业动态
营销活动

SonarQube:升级服务器

发布时间:2021/07/21 浏览量:2579

SonarQube升级服务器

SonarQube 版本号格式

在升级之前,它有助于了解 SonarQube 版本号的工作原理。 版本号最多由三位数字组成,每个数字代表发布周期的一部分:

 

主要版本号

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

次要版本号

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

补丁版本号

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

迁移路径

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

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

迁移路径示例:

示例 1 – 从 7.1 > 8.1,迁移路径为 7.1 > 7.9.6 LTS > 8.1

示例 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 升级的通用指南。 仔细阅读目标版本和任何中间版本的版本升级说明。

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

数据库磁盘使用建议

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

从 ZIP 文件升级

从 Docker 镜像升级

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

要使用 Docker 映像升级 SonarQube:

1.Stop and remove the existing SonarQube container (a restart from the UI is not enough as the environment variables are only evaluated during the first run, not during a restart):

$ docker stop <container_id>

$ docker rm <container_id>

2.Run docker:

$> 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>

3.Reanalyze your projects to get fresh data.

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

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

版本升级

如果您要迁移到同一版本中的不同版本(升级或降级),则步骤与上述完全相同,无需浏览设置或重新分析您的项目。

附加信息

Oracle清理

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

其他数据库维护

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

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

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

扫描仪更新

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

SonarQube 作为 Linux 或 Windows 服务

If you use external configuration, such as a script or Windows Service to control your server, you'll need to update it to point to $NEW_SONAR_HOME.

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

重建索引

如果你的升级需要重建Elasticsearch索引,你的项目和应用程序将在重新索引后变得可用。在所有项目都被编入索引之前,组合将无法使用。

版本升级说明

通常SonarQube发布的版本都会有一些具体的建议,以便从以前的版本升级。你应该阅读你当前版本和目标版本之间每个版本的升级说明。

 

 

北京哲想软件有限公司