Changing cluster settings

After creating a cluster, you can:

Changing the host class

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 host class for the cluster:

  1. View the description of the CLI's update cluster command:

    $ yc managed-postgresql cluster update --help
    
  2. Request a list of available host classes (the ZONES column specifies the availability zones where you can select the appropriate class):

    $ yc managed-postgresql resource-preset list
    
    +-----------+--------------------------------+-------+----------+
    |    ID     |            ZONE IDS            | CORES |  MEMORY  |
    +-----------+--------------------------------+-------+----------+
    | s1.nano   | ru-central1-a, ru-central1-b,  |     1 | 4.0 GB   |
    |           | ru-central1-c                  |       |          |
    | s1.micro  | ru-central1-a, ru-central1-b,  |     2 | 8.0 GB   |
    |           | ru-central1-c                  |       |          |
    | ...                                                           |
    +-----------+--------------------------------+-------+----------+
    
  3. Specify the class in the update cluster command:

    $ yc managed-postgresql cluster update <cluster name>
         --resource-preset <class ID>
    

    Managed Service for PostgreSQL will run the update host class command for the cluster.

You can change the host class using the API update method: pass the necessary value in the request parameter configSpec.clickhouse.resources.resourcePresetId.

To request a list of supported values, use the list method for the ResourcePreset resources.

Increasing storage size

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 increase the storage size for a cluster:

  1. Make sure the required cluster is using network storage (it is not yet possible to increase the size of local storage). To do this, request information about the cluster and find the disk_type_id field: it should be set to network-hdd or network-ssd:

    $ yc managed-postgresql cluster get <cluster name>
    
    id: c7qkvr3u78qiopj3u4k2
    folder_id: b1g0ftj57rrjk9thribv
    ...
    config:
      ...
      resources:
        resource_preset_id: s1.nano
        disk_size: "10737418240"
        disk_type_id: network-ssd
    ...
    
  2. View the description of the CLI's update cluster command:

    $ yc managed-postgresql cluster update --help
    
  3. Make sure the cloud's quota is sufficient to increase the storage size: open the Quotas page for your cloud and check that the Yandex Managed Service for PostgreSQL section still has space available in the space line.

  4. Specify the required amount of storage in the update cluster command (it must be at least as large as disk_size in the cluster properties):

    $ yc managed-postgresql cluster update <cluster name>
         --disk-size <storage size in GB>
    

    If all these conditions are met, Managed Service for PostgreSQL launches the operation to increase storage space.

You can change the storage size for a cluster using the API update method: pass the appropriate values in the request parameter configSpec.postgresqlConfig_<version>.resources.diskSize.

Make sure the cloud's quota is sufficient to increase the storage size: open the Quotas page for your cloud and check that the Yandex Managed Service for PostgreSQL section still has space available in the space line.

Changing PostgreSQL settings

You can change the DBMS settings for the hosts in your cluster, both the default ones and those changing with the host class.

When the host class changes, Managed Service for PostgreSQL automatically changes the following settings (if they weren't set manually):

  • max_connections
  • shared_buffers
  • min_wal_size
  • max_wal_size
  • autovacuum_max_workers
  • autovacuum_vacuum_cost_delay
  • autovacuum_vacuum_cost_limit

The settings you set manually will no longer change automatically. Exceptions can occur if the set value doesn't become invalid as you change the host class: for example, it's impossible to set max_connections to 400 and then change the cluster host class to s1.nano (for more information about the maximum number of connections, see Creating PostgreSQL clusters.

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 PostgreSQL server settings:

  1. View the full list of settings specified for the cluster:

    $ yc managed-postgresql cluster get <cluster name> --full
    
  2. View the description of the CLI's update cluster configuration command:

    $ yc managed-postgresql cluster update-config --help
    
  3. Set the required parameter values.

    All supported parameters are listed in the request format for the update method, in the postgresqlConfig_<version> field. To specify the parameter name in the CLI's call, convert the name from lowerCamelCase to snake_case. For example, the logMinDurationStatement parameter from an API request should be converted to log_min_duration_statement for the CLI command:

    $ yc managed-postgresql cluster update-config <cluster name>
         --set log_min_duration_statement=100,<parameter name>=<value>,...
    

    Managed Service for PostgreSQL will run the operation for changing the cluster settings.

You can change the DBMS settings for a cluster using the API update method: pass the appropriate values in the request parameter configSpec.postgresqlConfig_<version>.config.

Set the operation mode for the connection pooler

You can set one of the modes described in the PgBouncer documentation.

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 PgBouncer operation mode:

  1. View the description of the CLI's update cluster command:

    $ yc managed-postgresql cluster update --help
    
  2. Specify the necessary operation mode using the --connection-pooling-mode flag:

    $ yc managed-postgresql cluster update <cluster name>
         --connection-pooling-mode <SESSION, TRANSACTION or STATEMENT>
    

    Managed Service for PostgreSQL runs the operation for changing the connection pooler mode.

You can change the connection pooler's operation mode for a cluster using the update API method: pass the appropriate value in the configSpec.poolerConfig.poolingMode request parameter.