SonarQube数据库迁移

需求:

          因为SonarQube7.9版本之后SonarQube官方将不再对Mysql进行支持,所以我将mysql中的sonar数据迁移到oracle数据库。随着项目增大,mysql效率也是考虑一个原因。

 

先决条件:

  • SonarQube 6.7LTS至7.8版本
    注意:您的源数据库和目标数据库必须使用相同版本的SonarQube。
  • 当前正在使用MySQL

 

具体实施步骤:

1、下载最新版本的迁移器并解压缩。

2、确保源和目标的SonarQube版本相同。例如,如果你在源数据库上运行SonarQube 7.3,那么目标数据库上也确保是SonarQube 7.3。另外目标服务器执行一次生成好数据库表文件信息,然后将服务停止。

3、mysql-migrator脚本可以通过执行./mysql-migrator -help来获取使用说明。

     必填参数: (样例  ./mysql-migrator -source /xx/source.properties -target /xx/source.propeties)

  •    -source PATH PATH您的运行MySQL的SonarQube实例的配置文件的路径在哪里。
  •    -target PATH PATH您的运行非MySQL数据库的SonarQube实例的配置文件的路径在哪里。

   以下是配置文件,请自行修改IP地址,支持远程连接,目标库和源码库不需要在同一个服务器。请照抄,实施时第一次将sonar.jdbc.username放在sonar.jdbc.url上出现了...CommunicationsException: Communications link failure 。

   source.properties   mysql

sonar.jdbc.url = jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username = sonar
sonar.jdbc.password = sonar

  source.properties   oracle

sonar.jdbc.url = jdbc:oracle:thin:@xx.xx.xx.xx:1521/SID
sonar.jdbc.username = sonar
sonar.jdbc.password = sonar

4、数据迁移完毕后,删除目标SonarQube实例中的Elasticsearch数据文件夹:data/es5(在SonarQube 6.7-7.6);和 data/es6 在SonarQube 7.7及更高版本上。如果不进行删除,你启动后在sonarqube平台上数据将不显示。

注意:如果迁移目标是oracle,你还需要将oracle驱动jar包放到mysql-migrator/lib目录下,另外驱动jar的名称必须改成oracle.jar

 

相关链接

从SonarQube v7.9开始,官网将不再支持任何版本的MySQL。这是作者原话:https://community.sonarsource.com/t/end-of-life-of-mysql-support/8667

SonarQube提供了一个小工具以便于数据库数据从Mysql迁移至其它库。工具下载链接https://github.com/SonarSource/mysql-migrator

SonarQube社区论坛 https://community.sonarsource.com/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值