【问题标题】:Not able to start older version of SonarQube after upgrading升级后无法启动旧版本的 SonarQube
【发布时间】:2018-04-03 19:00:44
【问题描述】:

我目前使用的是 SonarQube 6.4 版。最近我在不同的位置下载了 SonarQube 6.6,并浏览了具有我用于 6.4 的相同数据库的项目。经过测试,我杀死了最新的服务器并尝试启动旧的 SonarQube(版本 6.4)但是当我启动 Sonar 服务器时无法启动并出现以下错误。

"/Users/manoj-3097/SONARQUBE/sonarqube-6.4/bin/macosx-universal-64/./wrapper" "/Users/manoj-3097/SONARQUBE/sonarqube-6.4/bin/macosx-universal-64/../../conf/wrapper.conf" wrapper.syslog.ident=SonarQube wrapper.pidfile="/Users/manoj-3097/SONARQUBE/sonarqube-6.4/bin/macosx-universal-64/./SonarQube.pid"
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1    |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
jvm 1    | 
jvm 1    | 2017.10.23 14:42:54 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /Users/manoj-3097/SONARQUBE/sonarqube-6.4/temp
jvm 1    | 2017.10.23 14:42:54 INFO  app[][o.s.a.p.JavaProcessLauncherImpl] Launch process[es]: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/bin/java -Djava.awt.headless=true -Xmx1G -Xms256m -Xss256k -Djna.nosys=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/Users/manoj-3097/SONARQUBE/sonarqube-6.4/temp -cp ./lib/common/*:./lib/search/* org.sonar.search.SearchServer /Users/manoj-3097/SONARQUBE/sonarqube-6.4/temp/sq-process634164140479096934properties
jvm 1    | 2017.10.23 14:43:00 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
jvm 1    | 2017.10.23 14:43:00 INFO  app[][o.s.a.p.JavaProcessLauncherImpl] Launch process[web]: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/Users/manoj-3097/SONARQUBE/sonarqube-6.4/temp -cp ./lib/common/*:./lib/server/*:/Users/manoj-3097/SONARQUBE/sonarqube-6.4/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer /Users/manoj-3097/SONARQUBE/sonarqube-6.4/temp/sq-process2067232188703791668properties
jvm 1    | 2017.10.23 14:43:01 INFO  app[][o.s.a.SchedulerImpl] Process [web] is stopped
jvm 1    | 2017.10.23 14:43:01 INFO  app[][o.s.a.SchedulerImpl] Process [es] is stopped
jvm 1    | 2017.10.23 14:43:01 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
wrapper  | <-- Wrapper Stopped

web.log 文件中添加了以下错误日志

2017.10.23 14:58:46 ERROR web[][o.s.s.p.Platform] Web server startup failed: Database was upgraded to a more recent of SonarQube. Backup must probably be restored or db settings are incorrect.

【问题讨论】:

    标签: sonarqube


    【解决方案1】:

    如果您使用旧数据库启动新的 SonarQube 版本,它将升级数据库(创建新表、删除旧列,甚至可能重新格式化数据等)。该数据库不能再与旧版 SonarQube 一起使用。

    如果您有数据库备份,则在备份之前:还原它。如果您没有备份,则没有简单的解决方法。理论上可能可以手动降级数据库,但这是一个超级冒险且难以做到的事情。

    当然,另一种选择是立即切换到新版本的 SonarQube :)

    【讨论】:

    • 那么有没有办法为旧服务器使用相同的数据库?
    • @ManojKumar 否。每个 SonarQube 版本都包含一个或多个(很可能是破坏性的)升级脚本。这些脚本在首次使用时执行。
    猜你喜欢
    • 1970-01-01
    • 2018-07-03
    • 2016-01-15
    • 2020-06-25
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2016-12-09
    相关资源
    最近更新 更多