SonarQube 4.5.7至5.6.5 DB升级失败

SonarQube 4.5.7至5.6.5 DB升级失败,sonarqube,sonarqube-ops,Sonarqube,Sonarqube Ops,我已尝试将SonarQube实例从4.5.7 LTS升级到5.6.5 LTS。我遵循了提供的SonarQube升级文档。浏览[声纳服务器]:9000/安装程序并运行数据库升级后。升级运行了2个多小时,并返回以下消息: Upgrade Failed Database connection cannot be established. Please check database status and JDBC settings. 查看日志时,我看到以下错误: 2017.02.16 13:18:4

我已尝试将SonarQube实例从4.5.7 LTS升级到5.6.5 LTS。我遵循了提供的SonarQube升级文档。浏览[声纳服务器]:9000/安装程序并运行数据库升级后。升级运行了2个多小时,并返回以下消息:

Upgrade Failed

Database connection cannot be established. Please check database status and JDBC settings.
查看日志时,我看到以下错误:

2017.02.16 13:18:43 ERROR web[o.s.s.d.m.DatabaseMigrator] Fail to execute database migration: org.sonar.db.version.v50.FeedFileSources
java.lang.IllegalStateException: Error during processing of row: [uuid=AVpHrbhU29-XDi5QdhtN,uuid=AVpHrbk629-XDi5Qdh0r,data=using System;
我已在此处复制了整个数据库升级日志:

我还尝试重新启动SonarQube并再次尝试db升级,但它运行了5-10分钟,并报告了相同的结果

其他详情:

当前声纳qube:4.5.7 LTS

新SonarQube:5.6.5 LTS

DB:MySQL 5.7.17

操作系统:Windows Server 2012 R2

升级失败后,我们成功恢复到4.5.7

我们以前也从4.3.1升级到4.5.7 LTS。在这次升级中,我们将SonarQube数据库从MySQL 5.5迁移到5.7.17,然后将SonarQube升级到4.5.7 LTS。此的升级步骤运行了两个小时并成功完成

谢谢你的帮助


-埃迪2017年2月21日更新

我在另一台服务器上为SonarQube升级建立了一个测试实例。我使用相同的备份数据安装了MySQL 5.7和SonarQube 4.5.7 LTS。在升级到SonarQube 5.6.5 LTS的过程中,我收到了与以前相同的错误。所以我知道在这一点上,我可以复制错误。我决定再次查看该错误消息,并进一步发现:

Caused by: java.sql.BatchUpdateException: Packet for query is too large         (6371233 > 4194304). You can change this value on the server by setting the         max_allowed_packet' variable.

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too     large (6371233 > 4194304). You can change this value on the server by setting     the `max_allowed_packet` variable.
因此,我继续编辑my.ini中的
max\u allowed\u packet
变量。首先,我将它从4M改为8M,并收到一个类似的错误。接下来,我将变量更改为16M,升级通过了错误

不幸的是,DB升级又运行了11个小时,但又出现了另一个错误:

2017.02.21 02:48:13 ERROR web[o.s.s.d.m.DatabaseMigrator] Fail to execute database migration: org.sonar.db.version.v564.CleanUsurperRootComponents
java.lang.IllegalStateException: Error during processing of row: [id=62566,uuid=AVpc2I0gt4GsKrhSYYYQ]
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Application was streaming results when the connection failed. Consider raising value of 'net_write_timeout' on the server.
Caused by: java.net.SocketException: Connection reset
我将mysql中的网络读取超时从60增加到1200<代码>设置网络写入超时=1200我重新启动了SonarQube,再次运行数据库升级,并通过了错误。升级继续运行,我收到另一个错误:

2017.02.21 09:57:05 ERROR web[o.s.s.d.m.PlatformDatabaseMigration] DB Migration or container restart failed. Process ended with an exception java.lang.IllegalStateException: Fail to load plugin Clirr [clirr]
Caused by: java.lang.NoClassDefFoundError: org/sonar/api/batch/maven/DependsUponMavenPlugin
Caused by: java.lang.ClassNotFoundException: org.sonar.api.batch.maven.DependsUponMavenPlugin
看起来像是一个插件错误,所以我继续研究这个插件。我发现一些关于Clirr插件被弃用的信息,所以我将其从插件文件夹中删除,重新启动SonarQube,并被另一个插件错误(不同的插件)击中。我得到了6或7个错误,并且能够通过删除插件文件夹中的.jar或将其替换为新的兼容版本来修复这些错误


所以在修复了Java插件之后,我重新启动了SonarQube,它启动得很好!我现在正在沙盒服务器上运行SonarQube 5.6.5 LTS。下一步我将恢复到4.5.7 LTS,并再次尝试升级,以确保将来的生产升级成功

看起来您遇到了与FeedFileSources相关的升级错误的另一个变体。见和。您可以调查链接中提到的表,试图找到一些不寻常的数据并修复它。由于这是LTS版本之间的升级,您还应该在SonarQube Google组中搜索答案或发布详细问题。作为最后手段,您必须从一个空数据库重新开始available@JeroenHeier谢谢我能够克服这个错误并找到更多!我把我所做的作为一个回答。一个非常好的报告!在开始升级之前审查所有插件确实是一个好主意。删除不推荐的插件,同时更新所有其他插件,创建一个新文件夹,将新SonarQube版本复制到其中,并从旧文件夹复制插件JAR。升级后还要重新编制数据库索引。