# Set Up a PostgreSQL Cluster

{% hint style="info" %}
**Prerequisites:** Prior to setting up a database, please make sure you are working within a provisioned [<mark style="color:blue;">VDC</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#vdc) that contains at least one [<mark style="color:blue;">virtual machine</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#virtual-machine-vm) from which to access the database. The VM you create is counted against the quota allocated in your contract.
{% endhint %}

{% hint style="info" %}
**Note:** Database Manager is available only for contract administrators, owners, and users with **Access and manage DBaaS** privilege. You can set the privilege via the DCD group privileges.
{% endhint %}

## Create a Cluster

To create a PostgreSQL cluster, follow these steps:

1\. In the **DCD**, go to **Menu** > **Databases** > **PostgreSQL**.

{% hint style="info" %}
**Info:** The **Resource allocation** section displays the resources allotted to your contract and the number of used and unused resources if you have already created PostgreSQL clusters.
{% endhint %}

![Number of used and unused resources](/files/VjhvCDdCP8q6Avi5vJD1)

2\. In the **PostgreSQL cluster overview** window, click **Create cluster** to create a new PostgreSQL cluster.

3\. Specify the following:

* Provide an appropriate **Cluster Name**.
* Select a **Location** where your data for the database cluster will be stored. You can select an available datacenter within the cluster's data directory to create your cluster.

![Define Cluster Properties](/files/wxgkc5pGXMY7LH1xskSa)

4\. To create a PostgreSQL cluster from the available backups directly, you can go to the **Create from backup** section and follow these steps:

* Select a **Backup cluster** from the drop-down list of cluster backups.
* Click the Calendar icon in the **Recover target time** field to select a date and time:
  * Select the **recovery date** from the calendar.
  * Select the **recovery time** using the clock.

![Create backup](/files/A7d78YUDAYW7ldOZUv2i)

5\. To configure your Cluster, enter the following details in the **Cluster configuration** section:

a. Select the appropriate **PostgreSQL Version**. IONOS Cloud Database Manager supports versions 14, 15, and 16.

b. Enter the number of **Instances** in the cluster. One PostgreSQL instance always manages the data of exactly one database cluster. You can create a maximum of five instances within a cluster.

{% hint style="info" %}
**Note:** Here, you will have a **primary** node and one or more standby nodes that run a copy of the active database, so you have **n-1 standby** instances in the cluster.
{% endhint %}

c. Select the mode of replication in the **Synchronization mode** field; **Asynchronous** mode is selected by default. The following are the available replication modes:

* **Asynchronous:** In asynchronous mode, the primary PostgreSQL instance does not wait for a replica to indicate that it wrote the data. The cluster can lose some committed transactions to ensure availability.
* **Synchronous:** Synchronous replication allows the primary node to be run standalone. The primary PostgreSQL instance will wait for any or all replicas. So, no transactions are lost during failover.

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

* You must choose either **Asynchronous** or **Strictly Synchronous**, as **Synchronous** replication mode is deprecated and will be fully removed in upcoming releases.

* You can update the existing clusters on **Synchronous** mode to either **Asynchronous** or **Strictly Synchronous** using the [<mark style="color:blue;">Update PostgreSQL Replication Mode</mark>](/cloud/databases/postgresql/api/v1-api/modify-cluster-attributes/update-postgresql-replication-mode.md) API.
  {% endhint %}

* **Strictly Synchronous:** It is similar to the synchronous mode but requires two operating nodes.

  d. Select a **Backup Location** that is explicitly your backup location (region). You can have off-site backups by using a region that is not included in your database region.

![Configure your PostgreSQL cluster](/files/n3kMKmi3ow4lw7bSOxhh)

6\. Specify the following in the **Instance configuration** section:

* **Number of CPUs (per instance)**: Select the number of CPU cores using the slider or choose from the available shortcut values.
* **RAM Size (per instance)**: Select the RAM size using the slider or choose from the available shortcut values.
* **Storage Type**: Select a storage type for your instance. [<mark style="color:blue;">HDD</mark>](https://docs.ionos.com/cloud/support/general-information/glossary-of-terms#hdd) is set by default.
* **Storage Size**: Enter the storage size value in Gigabytes.

![Configure instance](/files/phptnrWgQiwG1u5lQMRF)

7\. In the **Network configuration** section, provide the following information to connect your cluster with the datacenter:

* **Datacenter:** Select a datacenter from the available list.
* **Datacenter LAN:** Select a LAN for your datacenter.
* **Private IP:** Select a private IP address from the drop-down list. For more information, see [<mark style="color:blue;">Private IP Address Ranges</mark>](https://www.ionos.com/help/server-cloud-infrastructure/private-network/private-ip-address-ranges/).

{% hint style="info" %}
**Note:** To know your **private IP address/Subnet**, you must:

* Create a single server connected to an empty private LAN and check the IP assigned to that NIC in that LAN. The **DHCP** in that LAN always uses a **/24 subnet**, so you must reuse the **first 3 octets** to reach your database.
* To prevent a collision with the DHCP IP range, it is recommended to use IP addresses ending between **x.x.x.3/24** and **x.x.x.10/24** (which are never assigned by DHCP).
* If you have disabled DHCP on your private LAN, you must discover the IP address on your own.
  {% endhint %}

![Configure network](/files/zNdWHBmqku8wCLcEUA1c)

8\. In the **Maintenance period (optional)** section, you can set a maintenance day and time using the pre-defined format (hh:mm:ss) or the clock.

* Select a **Day** from the drop-down list.
* Enter a **Start Time (UTC)** using the pre-defined format (hh:mm:ss) to schedule the maintenance task. You can also click the ![Clock icon](/files/qchgBuxKMLdDjQbH2Vom) icon to set a time.

{% hint style="info" %}
**Note:** We recommend choosing the day and time appropriately because the maintenance occurs in a **4-hour-long window**.
{% endhint %}

![Schedule maintenance](/files/p6lzS1VT2jYwYsBWIQA5)

9\. Provide the following details in the **User Creation** section:

* **Username:** Enter a username to provide access to the PostgreSQL cluster for the respective user.
* **Password:** Enter a password for the respective user.

{% hint style="info" %}
**Note:** The credentials will be overwritten if the user already exists in the backup.
{% endhint %}

![Define user](/files/x90chi9y4eWRoX0xmhsk)

{% hint style="success" %}
**Result:** The **Estimated costs** will be displayed based on the input. It is exclusive and certain variables like traffic and backup are not considered.
{% endhint %}

![Estimated costs](/files/fCuhTh7RAB4Z3BuTRT5y)

10\. Click **Save** to create the PostgreSQL cluster.

{% hint style="success" %}
**Result:** Your PostgreSQL cluster is now created.
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.ionos.com/cloud/databases/postgresql/how-tos/setup-a-cluster-in-the-dcd.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
