Managing hosts in a cluster

You can add and remove cluster hosts and manage PostgreSQL settings for individual clusters.

Getting a list of cluster hosts

  1. Go to the folder page and select Managed Service for PostgreSQL.

  2. Click on the name of the cluster you need and select the Hosts tab.

If you don't have the Yandex.Cloud command line interface yet, install it.

The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name or --folder-id flag.

To get a list of cluster databases, run the command:

$ yc managed-postgresql host list
     --cluster-name=<cluster name>

+----------------------------+--------------+---------+--------+---------------+
|            NAME            |  CLUSTER ID  |  ROLE   | HEALTH |    ZONE ID    |
+----------------------------+--------------+---------+--------+---------------+
| rc1b...mdb.yandexcloud.net | c9qp71dk1... | MASTER  | ALIVE  | ru-central1-b |
| rc1c...mdb.yandexcloud.net | c9qp71dk1... | REPLICA | ALIVE  | ru-central1-c |
+----------------------------+--------------+---------+--------+---------------+

The cluster name can be requested with a list of clusters in the folder.

To get a list of cluster hosts, use the listHosts method.

Adding a host

The number of hosts in Managed Service for PostgreSQL clusters is limited by CPU quotas and the amount of memory available to database clusters in your cloud. To check the resources in use, open the Quotas page and find the Yandex Managed Service for PostgreSQL block.

  1. Go to the folder page and select Managed Service for PostgreSQL.

  2. Click on the name of the cluster you need and go to the Hosts tab.

  3. Click Add host.

  4. Specify the host parameters:

    • Availability zone.

    • Subnet (if the necessary subnet is not in the list, create it).

    • Priority of the host as a PostgreSQL replica.

    • Replication source (if you use cascading replication).

    • Select the Public access option if the host must be accessible from outside the Cloud.

If you don't have the Yandex.Cloud command line interface yet, install it.

The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name or --folder-id flag.

To add a host to the cluster:

  1. Request a list of cluster subnets to select one for the new host:

    $ yc vpc subnet list
    
    +-----------+-----------+------------+---------------+------------------+
    |     ID    |   NAME    | NETWORK ID |     ZONE      |      RANGE       |
    +-----------+-----------+------------+---------------+------------------+
    | b0cl69... | default-c | enp6rq7... | ru-central1-c | [172.16.0.0/20]  |
    | e2lkj9... | default-b | enp6rq7... | ru-central1-b | [10.10.0.0/16]   |
    | e9b0ph... | a-2       | enp6rq7... | ru-central1-a | [172.16.32.0/20] |
    | e9b9v2... | default-a | enp6rq7... | ru-central1-a | [172.16.16.0/20] |
    +-----------+-----------+------------+---------------+------------------+
    

    If the necessary subnet is not in the list, create it.

  2. See the description of the CLI command for adding a host:

    $ yc managed-postgresql host add --help
    
  3. Run the add host command:

    $ yc managed-postgresql host add
         --cluster-name <cluster name>
         --host zone-id=<availability zone>,subnet-id=<subnet ID>
    

    Managed Service for PostgreSQL launches the add host operation.

    The subnet ID must be specified if there is more than one subnet in the availability zone, otherwise Managed Service for PostgreSQL automatically selects a single subnet. The cluster name can be requested with a list of clusters in the folder.

To add a host to the cluster, use the addHosts method.

Changing a host

For each host in a PostgreSQL cluster, you can change:

  • The host's priority in the cluster, according to which a new master is selected when the old one is unavailable.

  • The host that should be the replication source for the current host (if you use cascading replication).

If you don't have the Yandex.Cloud command line interface yet, install it.

The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name or --folder-id flag.

To change the parameters of the PostgreSQL host, run the command:

$ yc managed-postgresql host update <hostname>
     --cluster-name <cluster name>
     --replication-source <source host's name
     --priority <replica's priority

The host names can be requested with a list of cluster hosts and the cluster name can be requested with a list of folder clusters.

To remove a host, use the deleteHosts method.

Removing a host

You can remove a host from a PostgreSQL cluster if it is not the only host in it. To replace a single host, first create a new host and then delete the old one.

If the host is the master when it's deleted, Managed Service for PostgreSQL will automatically assign another the next replica by priority the master.

  1. Go to the folder page and select Managed Service for PostgreSQL.

  2. Click on the name of the cluster you need and select the Hosts tab.

  3. Click image in the line of the necessary host and select Delete.

If you don't have the Yandex.Cloud command line interface yet, install it.

The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name or --folder-id flag.

To remove a host from the cluster, run:

$ yc managed-postgresql host delete <hostname>
     --cluster-name=<cluster name>

The name of the host can be requested with a list of cluster hosts, and the cluster name can be requested with a list of clusters in the folder.

To remove a host, use the deleteHosts method.