> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/databases/postgresql/overview.md).

# Overview

DBaaS for PostgreSQL is fully integrated into the [<mark style="color:blue;">Data Center Designer</mark>](/cloud/set-up-ionos-cloud/data-center-designer.md) and [<mark style="color:blue;">API (2.0.0)</mark>](https://api.ionos.com/docs/postgresql/v2/).

You may also start it through automation tools like [<mark style="color:blue;">Terraform</mark>](https://docs.ionos.com/cloud/tools-terraform) and [<mark style="color:blue;">Ansible</mark>](https://docs.ionos.com/ansible/api/dbaas-postgres).

**Compatibility:** DBaaS gives you access to the capabilities of the PostgreSQL database engine. This means that the code, applications, and tools you already use today with your existing databases can be used with DBaaS. <code class="expression">space.vars.ionos\_cloud</code> supports PostgreSQL versions 14, 15, 16, 17, and 18.

## DBaaS services offered by IONOS CLOUD

All back-end operations required to maintain your database in optimal operational health is supported along with the follwoing actions:

* Database installation through the DCD or the DBaaS API.
* Pre-set database configuration and configuration management options.
* Automation of backups for a period of 7 days.
* Regular patches and upgrades during maintenance.
* Disaster recovery through automated backup.
* Service monitoring: both for the database and the underlying infrastructure.

{% hint style="info" %}
**Note:** <code class="expression">space.vars.ionos\_cloud</code> does not allow superuser access for PostgreSQL services. However, most DBA-type actions are still available through other methods.
{% endhint %}

## Customer database administration duties

Tasks related to the optimal health of the database remain the responsibility of the customer. These include:

* Optimisation
* Data organisation
* Creation of indexes
* Updating statistics
* Consultation of access plans to optimize queries

**Logs:** The database stores logs on the same disk as the database. It records connections, disconnections, lock waits, Data Definiton Language (DDL) statements, any statement that runs for at least 500 ms, and any statement that causes an error. It does not provide an option to change this configuration. For more information, refer to the [<mark style="color:blue;">PostgreSQL Documentation</mark>](https://www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHAT).

To conserve disk space, log files are rotated according to size. Logs should not consume more than 175 MB of disk storage. The files are continuously monitored, and log messages are shipped to a central storage location with a 30-day retention policy. For more information, see [<mark style="color:blue;">Access Logs</mark>](/cloud/databases/postgresql/api/v1-api/access-logs.md).

**Write-Ahead Logs**: PostgreSQL uses [<mark style="color:blue;">Write Ahead Logs (WAL)</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#write-ahead-logs-wal) for continuous archiving and point-in-time recovery. These logs are created in addition to the regular logs.

Every change to the database is recorded in the WAL record. WALs are generated along with daily **base backups** and offer a consistent snapshot of the database as it was at that time. WALs and backups are automatically deleted after 7 days, which is the earliest point in time you can recover from. For more information, refer to the [<mark style="color:blue;">PostgreSQL Documentation</mark>](https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVING).

**Password encryption:** Client libraries must support `SCRAM-SHA-256` authentication. Make sure to use an up-to-date client library.

**Connection encryption:** All client connections are encrypted using TLS; the default [<mark style="color:blue;">SSL mode</mark>](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) is `prefer` and clients cannot disable it.

Server certificates are issued by Let's Encrypt and the root certificate is `ISRG Root X1`. This needs to be made available to the client for `verify-ca` and `verify-full` to function.

Certificates are issued for the DNS name of the cluster which is assigned automatically during creation and will look similar to `pg-abc123.postgresql.de-txl.ionos.com`. It is available through the <code class="expression">space.vars.ionos\_cloud</code> API as the `dnsName` property of the `cluster` resource.

Here is how to verify the certificate using the `psql` command line tool:

```bash
curl https://crt.sh/?q=9314791 > ca.crt
export PGSSLROOTCERT=$(pwd)/ca.crt
export PGSSLMODE=verify-full
psql -h pg-abc123.postgresql.de-txl.ionos.com -U dbadmin postgres
```

## Supported PostgreSQL versions

<code class="expression">space.vars.ionos\_cloud</code> supports PostgreSQL versions 14, 15, 16, 17, and 18, for example 16.4 and 17.2. PostgreSQL follows a yearly major release schedule, and each major version receives 5 years of support after its initial release. <code class="expression">space.vars.ionos\_cloud</code> DBaaS handles minor version upgrades automatically during maintenance windows. For example, a cluster running 16.4.1 is automatically upgraded to 16.4.2 when the next patch release becomes available. For more information, see [<mark style="color:blue;">Upgrade and Maintenance</mark>](/cloud/databases/postgresql/overview/upgrade-maintenance.md).

## Locations

DBaaS for PostgreSQL is offered in all <code class="expression">space.vars.ionos\_cloud</code> locations. You can use DBaaS instances running PostgreSQL in the <code class="expression">space.vars.ionos\_cloud</code> infrastructure. For more information about the regional API endpoints, see [<mark style="color:blue;">PostgreSQL API v2 Endpoints</mark>](https://api.ionos.com/docs/postgresql/v2/#tag/Overview/Endpoints).

## Performance considerations

Database instances are placed in the same location as your specified LAN, so network performance should be comparable to other machines in your LAN.

**Estimates:** A test with `pgbench` (scaling factor 1000, 20 connections, duration 300 seconds, not showing detailed logs) and a single small instance (2 cores, 4 GB RAM, 20 GB HDD) resulted in around 830 transactions per second (read and write mixed) and 1100 transactions per second (read-only). For a larger instance (4 cores, 8 GB RAM, 600GB Premium SSD) the results were around 3400 (read and write) and 19000 (read-only) transactions per second. The database was initialized using `pgbench -i -s 1000 -h <ip> -U <username> <dbname>`. For benchmarking the command line used was `pgbench -c 20 -T 300 -h <ip> -U <username> <dbname>` for the read/write tests, and `pgbench -c 20 -T 300 -S -h <ip> -U <username> <dbname>` for the read-only tests.

{% hint style="info" %}
**Note:** To cite the [<mark style="color:blue;">pgbench docs</mark>](https://www.postgresql.org/docs/current/pgbench.html): "It is very easy to use pgbench to produce completely meaningless numbers". The numbers shown here are only ballpark figures and there are no performance guarantees. The real performance will vary depending on your workload, the <code class="expression">space.vars.ionos\_cloud</code> location, and several other factors.
{% endhint %}


---

# 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.ionos.com/cloud/databases/postgresql/overview.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.
