> For the complete documentation index, see [llms.txt](https://docs.sonarsource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonarsource.com/sonarqube-server/10.5/setup-and-upgrade/upgrade-the-server/post-upgrade-steps.md).

# Performing the post-upgrade steps

You must perform various tasks after a SonarQube Server upgrade. This page is for SonarQube Server 10.5.

{% hint style="info" %}
**For AI agents:** You're in the SonarQube Server 10.5 documentation. For a list of all 10.5 pages, see the [SonarQube Server 10.5 page index](https://3691828591-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Feu7dHWcqP9Cr3eUAzwWg%2Fuploads%2FSs9GoB7jpGlJIw3L9REJ%2Fsonarqube-server-10.5-llms.txt?alt=media). For the whole site, see the [page index](https://docs.sonarsource.com/llms.txt) or the [full text](https://docs.sonarsource.com/llms-full.txt). For another version, replace 10.5 in the URL with that version. The [latest version](https://docs.sonarsource.com/sonarqube-server/) has no version number in its URL.
{% endhint %}

{% hint style="warning" %}
After an upgrade, some projects might be temporarily greyed out in the UI. This is because SonarQube Server is reindexing your projects, and they become available in the UI as they are reindexed. Note that you can already run analyses on these projects. See [Reindexing](/sonarqube-server/10.5/instance-administration/reindexing.md) for more information.
{% endhint %}

## Post-upgrade checklist <a href="#checklist" id="checklist"></a>

* Verify the version of the Sonar scanner: see **Verifying the installed Sonar scanner version on the scanner host**.
* For an Oracle database: clean up the database, see **Cleaning up the Oracle database**.
* For a PostgreSQL database: clean up the database, see **Cleaning up the PostgreSQL database**.
* For a Microsoft SQL database with Windows authentication: verify the JDBC driver version, see **Verifying the Microsoft SQL JDBC driver version**.
* If using an external configuration to control SonarQube Server (through a script or running as a service): update the service to point to the new installation directory, see **Updating a service to point to the new installation directory**.
* If SonarQube Server is running as a service on Linux with SystemD, then you must update the `sonarqube.service` file: see **Configuring SonarQube to run as a service**.
* If you are using the Web API, check at some point the usage of deprecated Web API endpoints and parameters: see [API deprecation](/sonarqube-server/10.5/instance-administration/monitoring/api-deprecation.md).

## Verifying the installed Sonar scanner version on the scanner host <a href="#verify-sonarscanner-version" id="verify-sonarscanner-version"></a>

When upgrading SonarQube Server, you should also make sure you’re using the latest versions of the SonarQube Server scanners to take advantage of features and fixes on the scanner side. Please check the documentation pages of the scanners you use for the most recent version compatible with SonarQube Server and your build tools.

## Cleaning up the Oracle database <a href="#clean-up-oracle-db" id="clean-up-oracle-db"></a>

On Oracle, the database columns to be dropped are now marked as UNUSED and are not physically dropped anymore. To reclaim disk space, Oracle administrators must drop these unused columns manually. The SQL request is ALTER TABLE foo DROP UNUSED COLUMNS. The relevant tables are listed in the system table all\_unused\_col\_tabs.

## Cleaning up the PostgreSQL database <a href="#clean-up-postgresql" id="clean-up-postgresql"></a>

You can fix the table and index bloating by performing [vacuuming](https://www.postgresql.org/docs/16/routine-vacuuming.html#VACUUM-FOR-SPACE-RECOVERY) in order to reclaim unused disk space. In some specific cases, a [reindex](https://www.postgresql.org/docs/16/routine-reindex.html)is required afterward.

## Verifying the Microsoft SQL JDBC driver version <a href="#verify-jdbc-version" id="verify-jdbc-version"></a>

If you use Microsoft SQL Server with Windows Authentication, make sure that you’re using a supported version of the Microsoft SQL JDBC Driver package. The minimum supported version is the one mentioned on the [Installing the database](/sonarqube-server/10.5/setup-and-upgrade/install-the-server/installing-the-database.md) page.

## Updating a service to point to the new installation directory <a href="#update-external-service" id="update-external-service"></a>

If you use an external configuration, such as a script or Windows Service to control your server, you’ll need to update it to point to the new value of installation directory (\<newSonarQubeHome>).

For Linux it depends how you implemented the service.

For Windows, update your service by running the following commands:

```css-79elbk
sc delete SonarQube
<newSonarQubeHome>\bin\windows-x86-64\SonarService.bat install
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sonarsource.com/sonarqube-server/10.5/setup-and-upgrade/upgrade-the-server/post-upgrade-steps.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
