Active a PostgreSQL Connection Pooler

You can activate a managed connection pooler (pgbouncer). Besides enabling it, you can only configure the poolMode. Currently, we support two modes:

  • transaction: The connection is released back to the pool after the transaction is completed. It is the default mode.

  • session: The connection is released back to the pool after the client disconnects.

Note: To use pgbouncer, change the port to connect to the database from 5432 (the default) to 6432. For example: For psql use psql -h pg-3euh45am6idkppu3.postgresql.de-fra.ionos.com -U myuser -d mydb --port=6432.

Endpoint

To activate the connection pooler, send PATCH request to the following endpoint:https://api.ionos.com/databases/postgresql/clusters/{clusterId}

Note: The sample UUID is 498ae72f-411f-11eb-9d07-046c59cc737e.

Request

curl --include \
    --request PATCH \
    --user "[email protected]:Mb2.r5oHf-0t" \
    --header "Content-Type: application/json" \
    --data-binary '{
      "metadata": {},
      "properties": {
        "connectionPooler": {
          "enabled": true,
          "poolMode": "session"
        }
      }
    }' \
    https://api.ionos.com/databases/postgresql/clusters/498ae72f-411f-11eb-9d07-046c59cc737e

Response

{
  "type": "cluster",
  "id": "498ae72f-411f-11eb-9d07-046c59cc737e",
  "metadata": {
    "state": "AVAILABLE",
    "createdDate": "2020-12-10T12:37:50.000Z",
    "createdBy": "[email protected]",
    "createdByUserId": "012342f-411f-1eeb-9d07-046c59cc737e",
    "lastModifiedDate": "2020-12-18T21:37:50.000Z",
    "lastModifiedBy": "[email protected]",
    "lastModifiedByUserId": "012342f-411f-1eeb-9d07-046c59cc737e"
  },
  "properties": {
        "displayName": "an even better name",
        "location": "de/txl",
        "dnsName": "pg-pgov71sjg1c875ji.postgresql.de-txl.ionos.com",
        "connections": [
            {
                "datacenterId": "db7e8811-cfae-4b40-82ee-2f4cff81e105",
                "lanId": "2",
                "cidr": "10.7.222.3/23"
            }
        ],
        "cores": 4,
        "postgresVersion": "15",
        "ram": 4096,
        "instances": 1,
        "storageSize": 102400,
        "storageType": "HDD",
        "maintenanceWindow": {
            "dayOfTheWeek": "Sunday",
            "time": "03:30:00"
        },
        "synchronizationMode": "ASYNCHRONOUS",
        "connectionPooler": {
            "enabled": true,
            "poolMode": "session"
        }
    }
}

Last updated

Was this helpful?