SonarQube启动后立即停止问题求助(Windows 10环境)
解决SonarQube启动失败(H2数据库Chunk 545 not found)的方案
核心问题定位
报错Chunk 545 not found [2.1.214/9]是H2数据库文件损坏的典型表现,这直接导致Web Server启动失败,进而让SonarQube服务启动后立刻停止。
修复步骤
1. 备份数据(必做)
找到SonarQube安装目录下的data文件夹,完整复制到安全位置,防止操作失误丢失现有数据。
2. 修复损坏的H2数据库文件
- 进入SonarQube安装目录的
lib文件夹,找到h2-2.1.214.jar(对应你的SonarQube版本自带的H2包) - 打开命令行,执行修复命令:
执行后会在当前目录生成修复后的SQL脚本java -cp h2-2.1.214.jar org.h2.tools.Recoversonar.h2.db.recovered.sql(默认对应data/sonar/sonar.h2.db文件)
3. 重建数据库
- 确保SonarQube服务完全停止(任务管理器中结束所有相关Java进程)
- 删除
sonarqube-9.8.0.63668\data\sonar目录下的所有文件 - 执行脚本重建数据库:
注:如果你的SonarQube配置了自定义的H2用户名/密码,替换命令中的java -cp h2-2.1.214.jar org.h2.tools.RunScript -url jdbc:h2:./data/sonar/sonar -user sonar -password sonar -script sonar.h2.db.recovered.sqlsonar和sonar为对应值。
4. 验证启动
执行startsonar.bat启动服务,查看web.log是否消除H2相关报错,访问http://localhost:9000确认服务正常。
后续建议
- H2数据库仅适合测试环境使用,长期运行或频繁写入容易出现文件损坏问题,建议生产环境切换到MySQL、PostgreSQL等稳定的关系型数据库。
- 确保始终使用SonarQube官方要求的JDK版本(你的场景是JDK 11),避免版本不兼容导致的异常。
- 启动SonarQube时不要使用管理员权限,防止文件权限异常引发数据库损坏。
内容的提问来源于stack exchange,提问作者N Olivier
相关产品推荐
相关产品推荐

