> 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/postgresql-faq.md).

# FAQ

The following are a few FAQ to provide insight into the PostgreSQL product.

## Provisioning and configuration

### On what server instances is PostgreSQL offered?

DBaaS offers PostgreSQL on virtual servers. Cloud Cubes support may be introduced in the future.

### Which replication modes are supported for PostgreSQL clusters?

PostgreSQL supports `ASYNCHRONOUS` and `STRICTLY_ASYNCHRONOUS` replication modes. `SYNCHRONOUS` mode is deprecated. You can set the replication mode when creating or updating a cluster in the DCD (listed as **Synchronization mode**) or through the API. In the v2 API, the property is named `replicationMode`. Existing v1 clusters using `SYNCHRONOUS` mode can switch to a supported mode using the [<mark style="color:blue;">API</mark>](/cloud/databases/postgresql/api/v1-api/modify-cluster-attributes/update-postgresql-replication-mode.md).

### Which PostgreSQL versions are supported?

The supported versions depend on the API version you are using:

* **PostgreSQL v2:** Versions 14, 15, 16, 17, and 18.
* **PostgreSQL v1:** Versions 14, 15, and 16.

PostgreSQL 17 and 18 are only available through the v2 API. If you are on v1 and want to use a newer version, you must migrate to v2.

### How do I link my user account to a PostgreSQL database?

In PostgreSQL v1, you first [<mark style="color:blue;">Create a user</mark>](https://api.ionos.com/docs/postgresql/v1/#tag/Users/operation/usersPost) and then specify that username in the `owner` filed when you [<mark style="color:blue;">Create a database</mark>](https://api.ionos.com/docs/postgresql/v1/#tag/Databases/operation/databasesPost). It allows you to associate a user account with a PostgreSQL database.

In PostgreSQL v2, database creation is integrated into cluster provisioning. Instead of creating users and databases separately, you can create both a new user and a new database as part of the [<mark style="color:blue;">Create Cluster</mark>](https://api.ionos.com/docs/postgresql/v2/#tag/Clusters/operation/clustersPost) API request.

### What are Legacy Clusters?

Legacy clusters are existing PostgreSQL v1 clusters. They are shown as **Legacy Clusters** in the PostgreSQL cluster overview in the DCD. Existing v1 clusters will be automatically migrated to the new v2 infrastructure and no user action is required. We will notify you before the migration.

## Connection pooling

### Is there a connection pooling option for PostgreSQL?

Yes. <code class="expression">space.vars.ionos\_cloud</code> DBaaS PostgreSQL provides a managed connection pooler (`pgbouncer`) that you can configure when creating or updating a cluster.

In the **DCD**, select the **Connection Pooler** mode during cluster setup or update. For more information, see [<mark style="color:blue;">Create a PostgreSQL Cluster</mark>](/cloud/databases/postgresql/how-tos/v2/create-postgresql-cluster.md).

In the [<mark style="color:blue;">v2 API</mark>](/cloud/databases/postgresql/api/v2-api.md), set the `connectionPooler` property to `"TRANSACTION"`, `"SESSION"`, or omit it to disable pooling. For more information, see [<mark style="color:blue;">Activate a PostgreSQL Connection Pooler</mark>](/cloud/databases/postgresql/api/v1-api/modify-cluster-attributes/activate-a-postgresql-connection-pooler.md).

### After the connection limit has been reached, will there be an error?

Depending on the library you are using, you get the following error:

`Failed to create DB connection: addr x.x.x.x:5432: connection refused.`

### How do we prevent reaching the connection limit?

The best way to manage connections is to have your application maintain a pool of at least 10-20 connections. It is not considered good practice to have many DB connections. However, letting the user configure `max_connections` themselves in the future is an option.

### Can I scale the deployment to increase its connection limit?

Yes. The `max_connections` value is calculated based on the RAM size of your cluster instances; increasing RAM per instance raises the connection limit. Note that 11 connections are reserved for internal platform use. If your application creates many short-lived connections, allowing the managed connection pooler (`pgbouncer`) is recommended to reduce the number of direct connections to PostgreSQL. For more information, see [<mark style="color:blue;">Connection Limits</mark>](/cloud/databases/postgresql/overview/limitations.md).

## Backup and recovery

### What are the supported backup methods?

We provide automated backups in <code class="expression">space.vars.ionos\_cloud</code>. If you want to use other backup options, you may use a client-side tool, such as [<mark style="color:blue;">pg\_dump</mark>](https://www.postgresql.org/docs/current/app-pgdump.html).

### Why cannot I restore to the time I specified?

If you are receiving an error message, `Parameter out of bounds: The recovery target time is before the newest basebackup.`, check the `earliestRecoveryTargetTime` of your backup. Your target time for the restore needs to be after this timestamp. You can use an earlier backup with `earliestRecoveryTargetTime` for your cluster if you have one.

If the `earliestRecoveryTargetTime` is missing in your backup, the cluster from where you want to restore wasn't able to do a base backup. It can happen when you quickly delete a newly created cluster, since the base backup will be triggered up to a minute after the cluster is available.

## Performance and scaling

### What are the main considerations for latency and performance?

The number of standby nodes (in addition to the primary node) doesn't really matter. If you have one or ten, it makes no difference. Synchronous modes are slower in write performance due to increased communication latency between a primary and a standby node.

## Monitoring

### Which metrics are available for PostgreSQL?

In the **DCD**, toggle **Enable metrics** in the observability settings during cluster setup or update. In the **v2 API**, set `metricsEnabled` to `true` on the cluster. The Monitoring Service must be activated for your contract before metrics can be collected. For a step-by-step guide, see [<mark style="color:blue;">Monitor PostgreSQL Databases</mark>](https://docs.ionos.com/cloud/tutorials/databases/postgresql/monitor-postgresql-databases).

## PostgreSQL v2 API

### What is the PostgreSQL v2 API?

The PostgreSQL v2 API is a modernized, future-proof, and developer-friendly `REST` interface designed to provision and manage highly available PostgreSQL clusters. It introduces refined resource modeling, region-specific routing, and OpenAPI best-practice error handling. For more information, see [<mark style="color:blue;">Features</mark>](/cloud/databases/postgresql/api/v2-api.md#features).

### What authentication methods are supported in PostgreSQL v2 API?

To align with modern security best practices, the v2 API requires API tokens (`tokenAuth`). Legacy basic authentication (`basicAuth`), which is available in PostgreSQL v1, is no longer supported.

### What endpoints do I use to connect to the PostgreSQL v2 API?

The PostgreSQL v2 API utilizes multiple region-specific endpoints. You must direct your requests to the specific region where your database is deployed. For information on supported regions and their corresponding endpoints, see [<mark style="color:blue;">Endpoints</mark>](/cloud/databases/postgresql/api/v2-api.md#endpoints).

### Can I use PostgreSQL v2 API for production applications?

Yes. The PostgreSQL v2 API is in General Availability (GA) phase starting May 18, 2026, and is supported for production workloads across all <code class="expression">space.vars.ionos\_cloud</code> regions where DBaaS PostgreSQL is offered. No prior whitelisting or contract activation is required.

### Can I connect to the default `postgres` database in the PostgreSQL v2 API?

No, you cannot. The v2 API intentionally denies this access. If you attempt to connect to it using your v2 cluster credentials, you receive a permission-denied error for the `postgres` database. You must instead connect to the specific database you defined within your cluster configuration during provisioning.

### What is the "Ensure" pattern in PostgreSQL v2 API?

The PostgreSQL v2 API introduces the "Ensure" pattern for cluster management. By utilizing `PUT` semantics such as `PUT /clusters/{clusterId}`, you can safely and idempotently create a new cluster or update an existing one to match your desired state. Non-present data will be filled with defaults.

### How do I manage users and databases in PostgreSQL v2 API?

You define your main user credentials, including the `username`, `password`, and `database` name, directly within the credentials property of your cluster payload during provisioning or when modifying the cluster.

### How are backups and backup locations managed in PostgreSQL v2 API?

Backups have been elevated to a dedicated top-level `/backups` endpoint, rather than being strictly nested under individual clusters. Additionally, the API introduces `BackupLocations` (`/backup-locations`) as an explicit resource, allowing you to query and configure the geographic safety of your backups.

### Does the PostgreSQL v2 API support filtering and pagination?

Yes. Every listing endpoint in the v2 API, such as `/clusters` or `/backups` supports standardized pagination (using `limit` and `offset`) and robust filtering. It allows you to search your resources by attributes such as `filter.state`, `filter.name`, or `filter.clusterId`.

### Can I view cluster logs using the PostgreSQL v2 API?

No, the explicit `/logs` endpoint available in v1 has been removed in the PostgreSQL v2 specification, indicating a shift in how operational observability and log access are managed.

### How can I evaluate the cluster healthiness?

Use the cluster metrics reporting to monitor the health of the cluster. The [<mark style="color:blue;">Retrieve Cluster</mark>](https://api.ionos.com/docs/postgresql/v2/#tag/Clusters/operation/clustersFindById) API only provides the status of the cluster.

### How to activate the logs and metrics for my cluster?

In [<mark style="color:blue;">Create Cluster</mark>](https://api.ionos.com/docs/postgresql/v2/#tag/Clusters/operation/clustersPost) or [<mark style="color:blue;">Ensure Cluster</mark>](https://api.ionos.com/docs/postgresql/v2/#tag/Clusters/operation/clustersPut), set the `logsEnabled` to `true` to view the logs reporting and set the `metricsEnabled` to `true` to view the metrics reporting.

{% hint style="warning" %}
**Note:**

* Even if `logsEnabled` and `metricsEnabled` is set to `true`, logs and metrics reporting are available only when you activate the Observability Logging Service and Monitoring Service.
* Activating the Logging Service and Monitoring Service will incur additional costs.
  {% endhint %}

### How can I activate central Logging Service?

To activate the Logging Service, use the [<mark style="color:blue;">Ensure Central Logging</mark>](https://api.ionos.com/docs/logging/v1/#tag/Central/operation/centralPut) API with `enabled` parameter set to `true`.

### How can I activate central Monitoring Service?

To activate the Monitoring Service, use the [<mark style="color:blue;">Ensure Central Monitoring</mark>](https://api.ionos.com/docs/observability-monitoring/v1/#tag/Central/operation/centralPut) API with the `enabled` parameter set to `true`.


---

# 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/postgresql-faq.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.
