Database

Requirements on SonarQube Server database.

Supported database engines:

Database engine
Requirement

PostgreSQL

Version: 13 to 17

Microsoft SQL server

Version:

• 2022 (MSSQL Server 16.0); 2019 (MSSQL Server 15.0); 2017 (MSSQL Server 14.0); 2016 (MSSQL Server 13.0).

• With bundled Microsoft JDBC driver.

Notes:

• Express Edition is supported.

• Windows and SQL Server authentication are both supported.

Oracle

Version: 23ai, 21C, 19C, XE Editions.

Recommendation: Use the latest Oracle JDBC driver.

Notes:

• The driver ojdbc14.jar is not supported.

• Only the thin mode is supported, not OCI.

• Only MAX_STRING_SIZE=STANDARD parameter is supported, not EXTENDED.

• Must be configured to use a UTF8-family charset (see the NLS_CHARACTERSET).

• The Oracle JDBC driver versions 12.1.0.1 and 12.1.0.2 have major bugs, and are not recommended for use with SonarQube Server (see more details).

H2

Recommendation: Use the H2 embedded database for non-production use cases:

• Development/Testing: H2 is ideal for quick prototypes, unit or integration tests, or CI/CD pipelines due to its lightweight setup.

• Trials: H2 allows users to try SonarQube without configuring a full database setup like PostgreSQL, Oracle, or MS SQL.

Why avoid H2 in production:

• Scalability Limits: H2 cannot handle high transaction volumes or concurrent users.

• Data Risks: In-memory mode risks data loss; file-based mode lacks robust durability.

• Concurrency Issues: H2 struggles with heavy concurrent access, which could cause slowdowns or deadlocks.

• Limited Features: H2 lacks replication, high availability, advanced security, or robust backups.

• SQL Compatibility: H2 may differ from production databases, risking transition issues.

Use PostgreSQL, Oracle, or MS SQL for production to ensure reliability and scalability. Limit H2 to development, testing, or trials.

We recommend that for production installation, the database used by SonarQube Server is hosted on a machine that is physically separate from the SonarQube Server host, with low latency between both hosts.

Last updated

Was this helpful?