SonarQube升级更新说明

本文介绍了SonarQube版本更新升级的方法。包括SonarQube升级指南和9.9版本更新说明。

9.9 版升级说明
数据库支持已更新
SonarQube不再支持Oracle版本12C和18C。
现在支持 Oracle 版本 21C。
现在支持 SQL Server 2022。
SonarQube 服务器需要 Java 17
Java 17 需要 SonarQube 服务器。不再支持使用 Java 11。
SonarScanner for .NET 兼容性
在SonarQube中对C#/VB.NET 进行增量分析需要SonarScanner for .NET 5.11+。
社区版、开发者版和企业版的单一Helm图表
sonarqube lts Helm图表不再维护,无法用于安装sonarqube 9.9 lts。要安装Community、Developer或Enterprise Edition,请使用sonarqube Helm图表。数据中心版随sonarqube dce Helm图表提供。
已更新 Docker 映像
如果你使用自签名的证书,你可能需要调整你的Docker配置:Java的安装路径已经改变为
/opt/java/openjdk/
废弃的和变量已被删除
最新的配置变量请参见环境变量。 
SONARQUBE_JDBC_USERNAMESONARQUBE_JDBC_PASSWORDSONARQUBE_JDBC_URL
Docker镜像上的标签被替换成新的LTS版本。如果你想避免任何自动的重大升级,我们建议使用相应的标签来代替.lts9.9-lts-。
SonarQube升级指南
迁移路径
跨多个非 LTS 版本的升级会自动处理。但是,如果迁移路径中有一个或多个 LTS 版本,则必须先迁移到每个中间 LTS,然后再迁移到目标版本,如下面的示例 3 所示。
升级到 LTS 版本时,应直接升级到其最新修补程序。这使您可以确保使用该补丁一切运行良好(请参阅下面的升级练习部分)。
您可以直接从最新的 LTS 版本升级到最新的非 LTS 版本。请参阅下面的示例 4。
如果要从 LTS 的早期修补程序版本迁移,则可以直接升级到下一个 LTS。您无需安装任何中间修补程序版本。
迁移路径示例:
示例 1 – 从 8.1 > 9.8,迁移路径为 8.1 > 8.9 LTS > 9.8 
示例 2 – 从 9.6 > 9.9 LTS,迁移路径为 9.6 > 9.9 LTS 
示例 3 – 从 7.9 LTS > 9.9 LTS,迁移路径为 7.9 LTS > 8.9 LTS > 9.9 LTS
示例 4 – 从 8.9LTS > 9.9 LTS,迁移路径为 8.9 LTS > 9.9 LTS

升级指南
这是跨 SonarQube 版本升级的通用指南。仔细阅读目标版本和任何中间版本的发行升级说明。
在升级之前,我们建议在尽可能与生产环境相似的过渡环境中练习升级。有关此概念和其他重要升级概念的详细信息,请通读升级之前页面。
在升级之前,请备份您的SonarQube数据库。升级问题很少见,但如果发生任何事情,您将需要备份。
数据库磁盘使用建议
在升级过程中,可能会复制表以加快迁移过程。这可能会导致数据库磁盘使用量暂时增加到正常使用量的两倍。因此,我们建议在开始迁移之前将数据库磁盘使用率保持在 50% 以下。
升级说明
您可以使用 ZIP 文件、Docker 镜像或 Helm Chart 升级 SonarQube 实例。
如果您的升级需要重新构建 Elasticsearch 索引,您的项目和应用程序将在重新索引时可用。在所有项目都编制索引之前,项目组合将不可用。
从 ZIP 文件升级
下载并将您的版本的SonarQube发行版解压缩到一个新目录中,假设
如果您使用的是第三方插件,请手动安装与您的 SonarQube 版本兼容的插件。使用插件版本矩阵来确保您安装的版本与您的服务器版本兼容。不建议简单地将插件从旧服务器复制到新服务器;不兼容或重复的插件可能会导致启动错误。默认情况下,无需插件即可分析您的版本提供的所有语言。
使用目录中的设置(Web 服务器 URL、数据库、LDAP 设置等)更新文件 (in ) 的内容。不要复制粘贴旧文件。如果您使用的是 Oracle DB,请将其 JDBC 驱动程序复制到sonar.properties /conf  /conf /extensions/jdbc-driver/oracle
停止旧的SonarQube服务器
启动您的新 SonarQube 服务器
浏览并按照设置说明进行操作 http://yourSonarQubeServerURL/setup
重新分析您的项目以获取最新数据
从 Docker 映像升级
如果使用 Oracle 数据库升级或使用插件,则可以重复使用以前版本的扩展卷,以避免移动插件或驱动程序。使用插件版本矩阵来确保您的插件与您的版本兼容。默认情况下,无需插件即可分析您的版本提供的所有语言。
要使用 Docker 镜像升级 SonarQube,请执行以下操作:
1. 停止并删除现有的 SonarQube 容器(从 UI 重新启动是不够的,因为环境变量仅在第一次运行期间计算,而不是在重新启动期间):
$ docker stop $ docker rm
2. 运行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 \
3. 转到并按照设置说明进行操作。http://yourSonarQubeServerURL/setup
4. 重新分析您的项目以获取最新数据。
从 8.9.x LTS 到 9.9.x LTS
请注意,Docker 镜像上的标签会替换为每个新的 LTS 版本。如果要避免自动主要升级,我们建议使用相应的标记,而不是依赖标记。lts9.9-lts-
除非您打算在运行映像时删除数据库并重新开始,否则请注意不要使用 and ,在运行 or 等命令时要小心;无论您是否使用参数,您的数据库卷都不会在 SonarQube 的初始启动和关闭之后持续存在。-v docker-compose downdocker system prunedocker volume pruneexternal: true
恢复到以前的版本
如果您需要恢复到以前版本的 SonarQube,则所有部署的高级回滚过程如下所示:
关闭您的 SonarQube 实例或集群。
将数据库回滚到开始升级之前创建的备份。
切换回以前版本的 SonarQube 安装。
启动您的 SonarQube 实例或集群。
更改您的版本
您可以在升级版本时移动到其他 SonarQube 版本(例如,从社区版移动到商业版)。只需使用上述升级说明中的相应版本文件或 Docker 映像标记即可。
如果您想在不升级 SonarQube 版本的情况下迁移到其他版本,则步骤与上述升级说明中的步骤完全相同,而无需导航到或重新分析您的项目。http://yourSonarQubeServerURL/setup
从 ZIP 文件实例迁移到 Docker 实例
要从 ZIP 文件迁移到 Docker,请执行以下操作:
将 Docker 实例配置为指向现有数据库。
关闭您的 ZIP 实例。
启动您的 Docker 实例。
其他步骤和信息
Oracle清理
从版本 6.6 开始,如果您使用的是 Oracle,则可能需要执行一个额外的步骤。在 Oracle 上,要删除的数据库列现在标记为未使用,并且不再物理删除。要回收磁盘空间,Oracle 管理员必须手动删除这些未使用的列。SQL 请求是 。系统表中列出了相关表。ALTER TABLE foo DROP UNUSED COLUMNSall_unused_col_tabs
其他数据库维护
完成技术升级后,您应该刷新数据库的统计信息并重建数据库的索引,然后再启动 SonarQube 并重新分析您的项目。
对于PostgreSQL,这意味着执行.根据PostgreSQL文档:VACUUM FULL
In normal PostgreSQL operation, tuples that are deleted or obsoleted by an update are not physically removed from their table; they remain present until a VACUUM is done.
Scanner更新
升级SonarQube时,您还应该确保使用的是最新版本的SonarQube Scanner
,以利用扫描仪端的功能和修复。
SonarQube 作为 Linux 或 Windows 服务
如果使用外部配置(如脚本或 Windows 服务)来控制服务器,则需要将其更新为指向 。
对于 Linux,这取决于您如何实现服务
对于 Windows,您可以通过运行以下命令来更新服务:
> sc delete SonarQube
> $NEW_SONARQUBE_HOME\bin\windows-x86-64\SonarService.bat install
重建索引
如果您的升级需要重新构建 Elasticsearch 索引,您的项目和应用程序将在重新编制索引时可用。在所有项目都编制索引之前,项目组合将不可用。
相关内容:

SonarQube 9.9 LTS – 规模、安全性、速度:有史以来更好的

关于苏州华克斯信息科技有限公司

专业的测试及安全产品服务提供商

Fortify | Webinspect | AppScan | SonarQube | 极狐GitLab 

LoadRunner | UFT(QTP) | ALM(QC)

 Micro Focus 铂金合作伙伴 | SonarQube中国总代理 

极狐GitLab铂金级合伙伴  | HCL中国合作伙伴

相关软件
Logo
SonarQube 代码质量扫描工具
SonarQube是自动化代码质量和安全分析平台。它使组织和个人开发者能够持续审查、监控和改进代码库,在开发过程早期检测诸如错误、漏洞和代码异味等问题。SonarQube集成了IDE(通过SonarQubeforIDE)、CI/CD流水线以及云端或本地部署,可满足广泛的使用场景,确保在整个软件开发生命周期中保持高标准的代码健康和安全性。SonarQube支持35多种编程语言和框架。其统一的方法协调了开发者的工作流程、团队标准和企业级安全性,使其成为小型项目和大型分布式开发团队寻求可扩展、可操作的代码智能的基础工具。
Logo
SonarCloud
SonarCloud是一种基于云的代码分析服务,旨在检测 26 种不同编程语言的编码问题。在您的云DevOps平台中清理代码,使用可轻松集成到云DevOps平台的解决方案扩展您的CI/CD工作流程,并使团队能够一致且高效地交付干净的代码。
426浏览  |  厂商已入驻提供最新报价
相关厂商
logo
苏州华克斯信息科技有限公司
官方入驻 1,332浏览
苏州华克斯信息科技有限公司创立于2012年,是一家全国测试及应用安全产品服务提供商。基于业内解决方案、雄厚的技术实力以及丰富的服务经验,为互联网、金融、电力、汽车、高校、第三方检测机构等行业的广大用户,提供优异多元的软件检测及应用安全解决方案、应用安全技术服务和实施服务。 公司通过ISO9001质量管理体系和ISO27001信息安全管理体系认证,并拥有丰富且成熟的软件产品线及提供应用软件功能、性能、安全等自动化测试整体化解决方案。 华克斯科技与众多的国外知名软件厂商都实现了的紧密合作,现已成为全球知名的软件厂商(如Micro Focus、SonarQube、HCL等)在中国地区大的合作伙伴之一,且为国内一众知名企业和机构(如陌陌、VIVO、华晨宝马、大都会人寿、中汽中心、辽宁省医疗器械检验检测院、湖北省医疗器械质量监督检验研究院等)提供着专业的产品服务和系统保障。 华克斯科技始终秉承着“以客户为中心”的经营理念,在不断丰富产品线和提高服务能力的同时,也一直积极地进行区域拓展,目前已在北京、深圳设有办事处,以便为客户提供更好更高效的本地服务。...
OpenText Professional Performance Engineering(LoadRunner Professional) Security Fortify OpenText Static Application Security Testing(SAST)静态应用程序安全测试 SonarQube 代码质量扫描工具 源代码缺陷检测工具 Nessus professional HCL AppScan HP Webinspect Nessus漏洞扫描工具 Burp Suite专业版 Burp Suite企业版 更多...
相关阅读
返回顶部