在升級(jí)之前,它有助于了解 SonarQube 版本號(hào)的工作原理。 版本號(hào)最多由三位數(shù)字組成,每個(gè)數(shù)字代表發(fā)布周期的一部分:
跨多個(gè)非 LTS 版本的升級(jí)是自動(dòng)處理的。 但是,如果您的遷移路徑中有一個(gè)或多個(gè) LTS 版本,您必須先遷移到每個(gè)中間 LTS,然后再遷移到目標(biāo)版本,如下面的示例 3 所示。
如果您從 LTS 的早期補(bǔ)丁版本遷移,您可以直接升級(jí)到下一個(gè) LTS。 您不需要安裝任何中間補(bǔ)丁版本。
遷移路徑示例:
示例 1 – 從 7.1 > 8.1,遷移路徑為 7.1 > 7.9.6 LTS > 8.1
示例 2 – 從 8.2 > 8.9 LTS,遷移路徑是 8.2 > 最新的 8.9 LTS 補(bǔ)丁。
示例 3 – 從 6.7.7 LTS > 8.9 LTS,遷移路徑為 6.7.7 LTS > 7.9.6 LTS > 最新的 8.9 LTS 補(bǔ)丁。
這是跨版本 SonarQube 升級(jí)的通用指南。 仔細(xì)閱讀目標(biāo)版本和任何中間版本的版本升級(jí)說明。
在開始之前,請(qǐng)備份您的 SonarQube 數(shù)據(jù)庫。 升級(jí)問題很少見,但如果發(fā)生任何事情,您將需要備份。
在升級(jí)過程中,可能會(huì)復(fù)制表以加快遷移過程,這可能會(huì)導(dǎo)致數(shù)據(jù)庫磁盤使用量翻倍。 因此,在開始遷移之前,我們建議您的數(shù)據(jù)庫磁盤使用率低于 50%。
如果您使用 Oracle 數(shù)據(jù)庫升級(jí)或使用其他插件,您可以重復(fù)使用以前版本的擴(kuò)展卷以避免移動(dòng)插件或驅(qū)動(dòng)程序。 使用兼容性矩陣確保您的插件與您的版本兼容。 默認(rèn)情況下,無需插件即可分析您的版本提供的所有語言。
要使用 Docker 映像升級(jí) SonarQube:
1.Stop and remove the existing SonarQube container (a restart from the UI is not enough as the environment variables are only evaluated during the first run, not during a restart):
$ docker stop <container_id>
$ docker rm <container_id>
2.Run docker:
$> docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
<image_name>
3.Reanalyze your projects to get fresh data.
不需要特定的 Docker 操作,只需使用新標(biāo)簽即可。
如果您要遷移到同一版本中的不同版本(升級(jí)或降級(jí)),則步驟與上述完全相同,無需瀏覽設(shè)置或重新分析您的項(xiàng)目。
Oracle清理
從6.6版本開始,如果你使用的是Oracle,你可能需要執(zhí)行一個(gè)額外的步驟。在Oracle上,要?jiǎng)h除的數(shù)據(jù)庫列現(xiàn)在被標(biāo)記為未使用的,并且不再被物理刪除。為了回收磁盤空間,Oracle管理員必須手動(dòng)刪除這些未使用的列。SQL請(qǐng)求是ALTER TABLE foo DROP UNUSED COLUMNS。相關(guān)的表被列在系統(tǒng)表all_unused_col_tabs中。
我們建議您在完成技術(shù)升級(jí)后,但在重新分析項(xiàng)目之前,刷新數(shù)據(jù)庫的統(tǒng)計(jì)信息并重建數(shù)據(jù)庫的索引。
對(duì)于 PostgreSQL,這意味著執(zhí)行 VACUUM FULL。 根據(jù) PostgreSQL 文檔:
在正常的 PostgreSQL 操作中,被更新刪除或廢棄的元組不會(huì)從它們的表中物理刪除; 它們一直存在,直到完成 VACUUM。
升級(jí) SonarQube 時(shí),您還應(yīng)該確保使用最新版本的 SonarQube 掃描儀,以利用掃描儀端的功能和修復(fù)。 請(qǐng)檢查您使用的與 SonarQube 和您的構(gòu)建工具兼容的最新版本的掃描儀的文檔頁面。
If you use external configuration, such as a script or Windows Service to control your server, you'll need to update it to point to $NEW_SONAR_HOME.
sc config SonarQube binPath= "\"$NEW_SONAR_HOME\bin\windows-x86-64\wrapper.exe\" -s \"$NEW_SONAR_HOME\conf\wrapper.conf\""
如果你的升級(jí)需要重建Elasticsearch索引,你的項(xiàng)目和應(yīng)用程序?qū)⒃谥匦滤饕笞兊每捎?。在所有?xiàng)目都被編入索引之前,組合將無法使用。
通常SonarQube發(fā)布的版本都會(huì)有一些具體的建議,以便從以前的版本升級(jí)。你應(yīng)該閱讀你當(dāng)前版本和目標(biāo)版本之間每個(gè)版本的升級(jí)說明。
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫