sonarqube 8.x版本安裝可以參照:
https://blog.csdn.net/qq_35550345/article/details/102860422
postgresql資料庫備份和恢複可以參照:
https://blog.csdn.net/qq_35550345/article/details/103588970
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