> 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/2026.1/server-update-and-maintenance/update/post-update-steps.md).

# Post-update steps

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

Here’s a list of steps to perform after the update:

* Verify the SonarScanner version, see [Verifying the installed SonarScanner version](#verify-sonarscanner-version) for more information.
* For an Oracle database: optionally clean up the database to reclaim disk space, see [Cleaning up the Oracle database](#clean-up-oracle-db) for more information.
* For a PostgreSQL database: clean up the database, see [Cleaning up the PostgreSQL database](#clean-up-postgresql) for more information.
* For a Microsoft SQL database with Windows authentication: verify the JDBC driver version, see [Verifying the Microsoft SQL JDBC driver version](#verify-jdbc-version) for more information.
* 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](#update-external-service) for more information.
* If SonarQube Server is running as a service on Linux with SystemD, then you must configure SonarQube Server to run as a service by updating the `sonarqube.service` file.
* If you use the Web API, check at some point the usage of deprecated Web API endpoints and parameters, see [Monitoring API deprecation](/sonarqube-server/2026.1/server-update-and-maintenance/maintenance/deprecations/monitoring-api-deprecation.md) for more information.

{% hint style="info" %}
If some projects fail to reindex after the update, see **Reindexing a single project** in [Reindexing](/sonarqube-server/2026.1/server-update-and-maintenance/maintenance/reindexing.md).
{% endhint %}

## Verifying the installed SonarScanner version <a href="#verify-sonarscanner-version" id="verify-sonarscanner-version"></a>

When updating SonarQube Server, you should also make sure you’re using the latest versions of the SonarScanners 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:

* SonarScanner for Maven: [SonarScanner for Maven](/sonarqube-server/2026.1/analyzing-source-code/scanners/sonarscanner-for-maven.md)
* SonarScanner for Gradle: [SonarScanner for Gradle](/sonarqube-server/2026.1/analyzing-source-code/scanners/sonarscanner-for-gradle.md)
* SonarScanner for .NET: [Installing the scanner](/sonarqube-server/2026.1/analyzing-source-code/scanners/dotnet/installing.md)
* SonarScanner for NPM: [Installing the scanner](/sonarqube-server/2026.1/analyzing-source-code/scanners/npm/installing.md)
* SonarScanner for Python: [SonarScanner for Python](/sonarqube-server/2026.1/analyzing-source-code/scanners/sonarscanner-for-python.md)

## 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 during an update are marked as UNUSED instead of being physically removed. This is intentional: Oracle performs the operation instantly and without locking the rows.

This cleanup is optional. Unused columns are invisible to all queries and have no impact on the functionality of SonarQube Server. Run the cleanup only if you want to reclaim disk space.

To list the tables that contain unused columns, run:

```sql
SELECT table_name FROM all_unused_col_tabs;
```

To reclaim the disk space, choose one of the following two options.

### Option 1: Drop the unused columns directly <a href="#drop-unused-columns" id="drop-unused-columns"></a>

```sql
ALTER TABLE foo DROP UNUSED COLUMNS;
```

{% hint style="warning" %}
This operation rewrites every row on disk and holds an exclusive lock for its entire duration. On large tables, such as `ISSUES` or `PROJECT_MEASURES`, it can take several hours and makes SonarQube Server unavailable. Plan a maintenance window accordingly.
{% endhint %}

### Option 2: Rebuild the table online <a href="#rebuild-table-online" id="rebuild-table-online"></a>

For large datasets, we recommend rebuilding the table online. This keeps the database accessible during the operation:

```sql
ALTER TABLE foo MOVE ONLINE;
```

With `MOVE ONLINE`, Oracle maintains all indexes automatically. They remain USABLE, and no rebuild is required.

{% hint style="info" %}
`MOVE ONLINE` is an Oracle Enterprise Edition feature and is not available on Express Edition (XE). Even with `ONLINE`, Oracle acquires a short lock (a few seconds) at the end of the operation to apply the final delta. The operation also requires significant temporary disk space, roughly a second copy of the table, and I/O while it runs.
{% endhint %}

### Choosing between the two options <a href="#which-option-to-choose" id="which-option-to-choose"></a>

Both options free the disk space taken by the unused columns. The difference is the trade-off between downtime, temporary disk space, and the Oracle edition you run:

|                     | Option 1: `DROP UNUSED COLUMNS`            | Option 2: `MOVE ONLINE`                |
| ------------------- | ------------------------------------------ | -------------------------------------- |
| Downtime            | Full exclusive lock for the whole duration | Almost none (brief lock at the end)    |
| Extra disk required | No (edits in place)                        | Yes (needs a second copy of the table) |
| Oracle edition      | Any edition                                | Enterprise Edition only (not XE)       |

## 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 database](/sonarqube-server/2026.1/server-installation/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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sonarsource.com/sonarqube-server/2026.1/server-update-and-maintenance/update/post-update-steps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
