天天看点

Sonarqube篇-从8.2升级到8.91、准备工作2、升级3、回滚

  1. sonarqube 8.x版本安装可以参照:

    https://blog.csdn.net/qq_35550345/article/details/102860422

  2. postgresql数据库备份和恢复可以参照:

    https://blog.csdn.net/qq_35550345/article/details/103588970

  3. mysql数据库备份和恢复可以参照:

    https://blog.csdn.net/qq_35550345/article/details/103588917

1、准备工作

# sonar-server是软连接
ln -s sonarqube-8.2.0.32929 sonar-server
# service文件
/etc/systemd/system/sonarqube.service
[Unit]
Description=SonarQube Server
After=network-online.target
 
[Service]
Type=forking
ExecStart=/data/apps/sonarqube/sonar-server/bin/linux-x86-64/sonar.sh start
ExecStop=/data/apps/sonarqube/sonar-server/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=131072
LimitNPROC=8192
User=sonar
Group=sonar
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
           

2、升级

  • 准备文件
cd /data/apps/sonarqube
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.2.46101.zip
unzip sonarqube-8.9.2.46101.zip
 
#备份配置文件
cp sonarqube-8.9.2.46101/conf/sonar.properties sonarqube-8.9.2.46101/conf/sonar.properties.bak
cp sonarqube-8.9.2.46101/conf/wrapper.conf sonarqube-8.9.2.46101/conf/wrapper.conf.bak
 
#复制配置文件
cp sonar-server/conf/sonar.properties sonarqube-8.9.2.46101/conf/sonar.properties
cp sonar-server/conf/wrapper.conf sonarqube-8.9.2.46101/conf/wrapper.conf
           
  • 备份数据库
#停止服务,备份数据库
sudo systemctl stop sonarqube
sudo -u postgres pg_rman backup -b full -Z -B /data/database/psql_back/psqldb
 
#查看是否备份成功
pg_rman show -B /data/database/psql_back/psqldb
           
  • 重启服务
#重新创建链接,重启服务
rm -rf sonar-server
ln -s sonarqube-8.9.2.46101 sonar-server
sudo systemctl start sonarqube
           
  • 页面操作,升级数据库
1) 访问网址 http://172.16.212.11:9000/setup 
2)点击upgrade升级数据库,升级成功会自动跳转到登录页面
3)使用管理员账户和默认密码(admin/admin)登录,会提示修改密码
           
  • 查看有哪些变更,处理一下
1)页面从原来的中文变成了英文
cd /data/apps/sonarqube/sonar-server/extensions/downloads
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-8.9/sonar-l10n-zh-plugin-8.9.jar
sudo systemctl restart sonarqube
#再次登陆页面会提示检测到插件风险,点我了解风险即可

2)阿里代码规范丢失
cp sonarqube-8.2.0.32929/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar sonar-server/extensions/downloads/
sudo systemctl restart sonarqube
           

3、回滚

  • 恢复数据库
sudo systemctl stop sonarqube
sudo systemctl stop postgresql-11
 
#找到那个全量备份然后恢复
pg_rman show -B /data/database/psql_back/psqldb
sudo -u postgres pg_rman restore -B /data/database/psql_back/psqldb -D /var/lib/pgsql/11/data/ --recovery-target-time "开始时间" --hard-copy
sudo systemctl start postgresql-11
 
#查看数据库日志发现recovery pause的需要手动调用pg_wal_replay_resume,然后才能恢复成功,否则数据库的transaction是read-only模式,会导致sonarqube起不来
sudo -u postgres psql
select pg_wal_replay_resume();
           
  • 修改软连接,启动服务
rm -rf /data/apps/sonarqube/sonar-server
cd /data/apps/sonarqube/
ln -s sonarqube-8.2.0.32929 sonar-server
systemctl start sonarqube