FAQ about Managed Service for PostgreSQL
General questions about
-
What part of database management and maintenance is Managed Service for PostgreSQL responsible for?
-
Which PostgreSQL version does Managed Service for PostgreSQL use?
-
How can I change the computing resources and storage size for a database cluster?
-
When are backups performed? Is a database cluster available during a backup?
-
What limitations are imposed on PostgreSQL database clusters?
-
What PostgreSQL extensions are supported in Managed Service for PostgreSQL?
-
Does the service comply with the Russian Federal Law 152-FZ on personal data?
-
Why is the cluster slow even though the computing resources are not used fully?
Connection
-
How do I obtain an SSL certificate to connect to Managed Service for PostgreSQL on Windows?
-
Why does an error occur when trying to connect to a database from Looker Studio?
Updating a cluster
-
Why did the cluster change its status to Updating during an unscheduled backup?
-
Can I change the class of an existing host (standard, memory-optimized, burstable)?
Cluster parameter settings
Moving and restoring a cluster
-
Do I need the wal2json plugin if there is only data replication and no copying?
-
How do I move a local PostgreSQL database dump to Yandex Cloud?
Users and roles
High availability and load balancing
-
Why do I get an error when setting up cascading replication?
-
Can I configure multimaster in a cluster or between two clusters?
-
How to configure load balancing so that read requests go to replicas?
-
Why does the master fail over to a randomly selected host when autofailover is off?
-
Why does the master fail over when the cluster recovers, even though autofailover is off?
Monitoring and logs
-
Where can I track my use of disk space to avoid exceeding the 95% read-only limit?
-
Are logs stored on the same disk as PostgreSQL data? How are they charged?
-
What does the
Cached
parameter mean in PostgreSQL cluster host RAM monitoring? -
How do I get alerts on critical PostgreSQL cluster parameters?
Error messages
-
What should I do if I get the
SSL is required
error when connecting? -
What should I do if I get the
too many active clients for user
error when connecting? -
Why do I get an error when connecting to the
postgres
database? -
Why does the connection terminate with
terminating connection due to administrator command
? -
Why can a data transfer through creating and restoring a logical dump fail with an error?
-
Why do I get an error when setting up cascading replication?
-
Why do I get the
cannot execute <SQL_command> in a read-only transaction
error?
General questions about
What is Managed Service for PostgreSQL?
Managed Service for PostgreSQL is a service that helps you create, operate, and scale PostgreSQL databases in a cloud infrastructure.
With Managed Service for PostgreSQL, you can:
- Create a database with the required performance characteristics.
- Scale processing power and storage dedicated for your databases as needed.
- Get database logs.
Managed Service for PostgreSQL takes on time-consuming PostgreSQL infrastructure administration tasks:
- Monitors resource usage.
- Automatically creates DB backups.
- Provides fault tolerance through automatic failover to backup replicas.
- Keeps database software updated.
You interact with database clusters in Managed Service for PostgreSQL the same way you interact with regular databases in your local infrastructure. This allows you to manage internal database settings to meet your app requirements.
What part of database management and maintenance is Managed Service for PostgreSQL responsible for?
When you create clusters, Managed Service for PostgreSQL allocates resources, installs the DBMS, and creates databases.
For the created and running databases, Managed Service for PostgreSQL automatically creates backups and applies fixes and updates to the DBMS.
Managed Service for PostgreSQL also allows you to replicate data between database hosts (both within and across availability zones) and automatically routes the load to a backup replica in the event of a failure.
Which tasks are best addressed using Managed Service for PostgreSQL, and which using VMs with databases?
Yandex Cloud offers two ways to work with databases:
- Managed Service for PostgreSQL allows you to operate template databases with no need to worry about administration.
- Yandex Compute Cloud virtual machines allow you to create and configure your own databases. This approach allows you to use any database management systems, access databases via SSH, etc.
What is a database host and database cluster?
A database host is an isolated database environment in the cloud infrastructure with dedicated computing resources and reserved data storage.
A database cluster is one or more database hosts between which you can configure replication.
How do I get started with Managed Service for PostgreSQL?
Managed Service for PostgreSQL is available to any registered Yandex Cloud user.
To create a database cluster in Managed Service for PostgreSQL, you need to define its parameters:
- Host class (performance characteristics, such as CPUs, RAM, etc.).
- Storage size (reserved to the full extent when you create a cluster).
- Network your cluster will be connected to.
- Number of hosts for the cluster and the availability zone for each host.
For detailed instructions, see Getting started with Managed Service for PostgreSQL.
How many database hosts can there be in one cluster?
The minimum number of hosts depends on the selected type of storage:
-
A minimum of three hosts for these disks:
- Local SSDs (
local-ssd
) - Non-replicated SSDs (
network-ssd-nonreplicated
)
- Local SSDs (
-
A minimum of one host for these disks:
- Network HDDs (
network-hdd
) - Network SSDs (
network-ssd
) - Ultra high-speed network SSDs with three replicas (
network-ssd-io-m3
)
- Network HDDs (
The maximum number of hosts per cluster is subject to the limits in place.
For more information, see Quotas and limits in Managed Service for PostgreSQL.
How can I access a running DB host?
You can connect to Managed Service for PostgreSQL databases using standard DBMS methods.
Learn more about connecting to clusters.
How many clusters can I create within a single cloud?
MDB technical and organizational limits are given in Quotas and limits in Managed Service for PostgreSQL.
How are DB clusters maintained?
In Managed Service for PostgreSQL, maintenance implies:
- Automatic installation of DBMS updates and revisions for DB hosts (including disabled clusters).
- Changes to the host class and storage size.
- Other Managed Service for PostgreSQL maintenance activities.
For more information, see Maintenance in Managed Service for PostgreSQL.
Which PostgreSQL version does Managed Service for PostgreSQL use?
Managed Service for PostgreSQL supports PostgreSQL 13, 14, 15, 16, and 17, as well as PostgreSQL 13, 14, 15, and 16 for 1C.
What happens when a new DBMS version is released?
The database software is updated when new minor versions are released. Owners of the affected DB clusters are notified of expected work times and DB availability in advance.
What happens when a DBMS version becomes deprecated?
One month after the database version becomes deprecated, Managed Service for PostgreSQL automatically sends email notifications to the owners of DB clusters created with this version.
New hosts can no longer be created using deprecated DBMS versions. Database clusters are automatically upgraded to the next supported version seven days after notification for minor versions and one month after notification for major versions. Deprecated major versions are going to be upgraded even if you have disabled automatic updates.
How do you calculate usage cost for a database host?
In Managed Service for PostgreSQL, the usage cost is calculated based on the following parameters:
- Selected host class.
- Size of the storage reserved for the database host.
- Size of the database cluster backups. Backup size equal to the storage size is free of charge. Backup storage that exceeds this size is charged at special rates.
- Number of hours of database host operation. Partial hours are rounded to an integer value. To find out the cost per hour of operation for each host class, see Managed Service for PostgreSQL pricing policy.
How can I change the computing resources and storage size for a database cluster?
You can change computing resources and storage size in the management console. All you need to do is choose a different host class for the required cluster.
The cluster characteristics change within 30 minutes. During this period, other maintenance activities may also be enabled for the cluster, such as installing updates.
Can I configure auto increase of cluster storage size?
Yes, you can set up automatic increase of the storage size when creating or updating a cluster.
Is database host backup enabled by default?
Yes, backup is enabled by default. For PostgreSQL, a full backup takes place once a day and saves all DB cluster transaction logs. This allows you to restore the cluster state to any point in time during the backup storage period, except for the last 30 seconds.
By default, backups are stored for seven days.
When are backups performed? Is a database cluster available during backup?
The backup window is an interval during which a full daily backup of the DB cluster is performed. The backup window is from 01:00 to 05:00 (UTC+3).
Clusters remain fully accessible during the backup window.
Are PostgreSQL DB cluster connections encrypted?
Connections between a database cluster and an application are always encrypted using SSL. You cannot disable cluster connection encryption.
What is a read-only replica in PostgreSQL?
A read-only replica is a PostgreSQL DB cluster host available only for reads. Its data is synced with the master host (applies only if the cluster has more than 1 host). You can use a read-only replica to reduce the load on the DB master host with a large number of read requests.
What metrics and processes can be tracked using monitoring?
For all DBMS types, you can track:
- CPU, memory, network, or disk usage, in absolute terms.
- Amount of data in the DB cluster and the remaining free space in the data storage.
For DB hosts, you can track metrics specific to the corresponding type of DBMS. For example, for PostgreSQL, you can track:
- Average query execution time.
- Number of queries per second.
- Number of errors in logs, etc.
Monitoring can be performed with a minimum granularity of 5 seconds.
Can I get logs of my operations in Yandex Cloud?
Yes, you can request information about operations with your resources from Yandex Cloud logs. For more information, see Data requests.
What limitations are imposed on PostgreSQL database clusters?
For more information about Managed Service for PostgreSQL limitations, see Quotas and limits in Managed Service for PostgreSQL. Characteristics of clusters that can be created using Managed Service for PostgreSQL are given in PostgreSQL host classes.
What PostgreSQL extensions are supported in Managed Service for PostgreSQL?
The list of supported PostgreSQL extensions is provided in Managing extensions.
Which data center stores PostgreSQL cluster backups?
Cluster backups are stored and available in all three data centers.
Does the service meet the requirements of the Russian Federation Federal Law 152-FZ on personal data?
Yes, it does. You can read the full security audit conclusion here
Can I get superuser privileges in PostgreSQL?
No, you cannot. Superuser privileges are not available to Managed Service for PostgreSQL users. The highest privileges for working with clusters are granted to users with the mdb_admin and mdb_superuser roles.
Can I copy data from a Managed Service for PostgreSQL table to a local file? Can I populate a table with data from a local file?
Yes, you can both copy data from a table to a local file and populate a table with data from a local file. For more information, see Copying and populating a table from a local machine.
Are there any special aspects or restrictions on the use of a garbage collector in Managed Service for PostgreSQL clusters?
Managed Service for PostgreSQL clusters support all parameters of the VACUUM command
- To run
VACUUM FULL
, the user must have themdb_admin
role. The VACUUM FULL command does not affect system views. - In PostgreSQL version 14, the
INDEX_CLEANUP
parameter functionality has been enhanced: it now has theAUTO
value by default. This means theVACUUM
command skips index cleaning if it considers it unnecessary. To ensure backward compatibility with the previous PostgreSQL versions, setINDEX_CLEANUP
toON
.
Why is the cluster slow even though the computing resources are not used fully?
Your storage may have insufficient maximum IOPS and bandwidth to process the current number of requests. In this case, throttling occurs, which degrades the entire cluster performance.
The maximum IOPS and bandwidth values increase by a fixed value when the storage size increases by a certain step. The step and increment values depend on the disk type:
Disk type | Step, GB | Max IOPS increase (read/write) | Max bandwidth increase (read/write), MB/s |
---|---|---|---|
network-hdd |
256 | 300/300 | 30/30 |
network-ssd |
32 | 1,000/1,000 | 15/15 |
network-ssd-nonreplicated , network-ssd-io-m3 |
93 | 28,000/5,600 | 110/82 |
To increase the maximum IOPS and bandwidth values and make throttling less likely, increase the storage size when you update your cluster.
If you are using the network-hdd
storage type, consider switching to network-ssd
or network-ssd-nonreplicated
by restoring the cluster from a backup.
Connection
Can I access a cluster from within Yandex Cloud?
You can connect to Managed Service for PostgreSQL cluster hosts:
- Over the internet, if you configured public access for the appropriate host. You can only connect to such hosts over an SSL connection.
- From Yandex Cloud virtual machines located in the same cloud network. If the host is not publicly accessible, there is no need to use SSL for connections from such virtual machines.
- From a container in Yandex Serverless Containers. If the host is not publicly accessible, the container must be located in the same cloud network.
For more information, see the service documentation.
Can I connect to a cluster from a Docker container?
Yes, you can. To do this, configure the Dockerfile.
You can find an example of connection from a container in Yandex Serverless Containers in this tutorial.
How do I obtain an SSL certificate to connect to Managed Service for PostgreSQL on Windows?
You can obtain an SSL certificate using PowerShell:
mkdir $HOME\.postgresql; curl.exe --output $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
The certificate will be saved to the $HOME\.postgresql\root.crt
file.
For more information about obtaining a certificate and connecting to a database, see the service documentation.
How do I install an SSL certificate to connect Power BI to Managed Service for PostgreSQL via psql?
-
Install Windows Subsystem for Linux
(WSL) and run the following command in the terminal:mkdir /mnt/c/temp && \ curl "https://storage.yandexcloud.net/cloud-certs/CA.pem" --output /mnt/c/temp/CA.pem && \ openssl pkcs12 -export -out /mnt/c/temp/CA.pfx -nokeys -in /mnt/c/temp/CA.pem
The certificate will be available at
C:\temp\CA.pfx
. -
Place the obtained certificate in the Windows certificate store
.
Can I connect to cluster hosts over SSH?
You cannot connect to hosts via SSH. This is done for the sake of security and user cluster fault tolerance because direct changes inside a host can render it completely inoperable.
What is the maximum allowed number of concurrent connections to a single host in Managed Service for PostgreSQL?
The number of concurrent connections is specified at the cluster level in the Max connections setting. By default, the maximum value is set, which is calculated by the following formula:
200 × <number_of_vCPUs_per_host>
For information about how to update the PostgreSQL settings at the cluster level, see our documentation.
What is the allowed number of connections per user?
By default, a cluster reserves 50 connections to each host per user. You can change this number in the Conn limit setting.
If the connection limit per user is reached, any attempt to establish a new connection will fail with the following error:
too many active clients for user (pool_size for user <user_name> reached <limit_value>)
To learn how to update PostgreSQL settings at the user level, see this tutorial.
Why do I get an error when trying to connect to a database from Looker Studio?
To connect from Looker Studio, be sure to generate a client certificate file and a private key and specify them in the connection settings. For more information about how to do this, see Connecting from Looker Studio.
How do I always connect to the master host?
To connect to the current master host, use a special FQDN. It has this format: c-<cluster_ID>.rw.mdb.yandexcloud.net
. When connected to this FQDN, you can perform read and write operations.
Example of command for connection to a master
psql "host=c-<cluster_ID>.rw.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<DB_name> \
user=<user_name>"
How do I always connect to the most recent replica?
To connect to the most recent replica, use a special FQDN. It has this format: c-<cluster_ID>.ro.mdb.yandexcloud.net
. When connected to this FQDN, you can perform only read operations.
Example of command for connection to a replica
psql "host=c-<cluster_ID>.ro.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<DB_name> \
user=<user_name>"
If there are no active replicas in the cluster, this FQDN will point to the current master host.
postgres
database?
How do I connect to the postgres
is a housekeeping database. For security reasons, you cannot connect to housekeeping databases.
postgres
user's password?
How do I get the For security reasons, you cannot get the postgres
user's password nor connect to the database as that user.
Updating a cluster
Updating
during an unscheduled backup?
Why did the cluster change its status to The cluster changes its status to Updating right after the backup process is launched. You cannot cancel this operation. Wait for it to complete instead.
The time this operation is performed depends on a number of factors, such as DB size, cluster configuration, and the nature of data being stored. The average speed when recovering a cluster from a backup is about 100 Mbps.
Can I create two PostgreSQL databases at the same time?
You cannot apply multiple transactions to a cluster at the same time. It is an architectural feature of the technologies utilized by Yandex Cloud.
Can I change the number of connections available to a user?
Yes, you can. To do this, change the values of the relevant settings:
- Conn limit: Maximum number of host connections per user. The default is 50. The minimum is 10.
- Max connections: Maximum number of connections reserved for all users. The default value is
200 × <number_of_vCPUs_per_host>
. You have to keep in mind that this number includes 15 service connections, e.g., given a cluster with"max_connections": 100
, you can reserve a maximum of 85 connections per cluster host for users.
Can I change the class of an existing host (standard, memory-optimized, burstable)?
Yes, you can by following the procedure in Changing cluster settings.
Can I change the an existing cluster's disk type?
Yes, you can. To do this, restore the cluster from a backup and specify the desired disk type when configuring the new cluster.
Can I manage a cluster using SQL commands?
There are some restrictions for cluster management using SQL commands. For more information, see SQL command limits.
Cluster parameter settings
Is autovacuum enabled for all tables by default?
Yes, AUTOVACUUM
is enabled for all tables by default.
Autovacuuming does not run at a specific time. Instead, it runs when a certain value specified in the settings is reached, for example, when the share of updated or deleted table records becomes equal to the Autovacuum vacuum scale factor.
For more information, see the PostgreSQL documentation
Which LC_COLLATE and LC_CTYPE values are set for databases by default?
As databases are created, LC_CTYPE=C
and LC_COLLATE=C
are set by default. You can't change these settings for the database you create with clusters. However, you can create a new database and set the values you need for it.
Can I change the LC_COLLATE and LC_CTYPE values?
You cannot change locale settings after you create a database. You can:
- Create a new database with the desired settings.
- Set a sorting locale (
LC_COLLATE
) for elements of an existing database:- When calling a function:
SELECT lower(t1 COLLATE "ru_RU.utf8") FROM test;
- When creating and updating a table:
CREATE TABLE test (t1 text COLLATE "ru_RU.utf8");
- When calling a function:
Can I change the DB owner?
Once you create a DB, you cannot change its owner. If you create a DB via Terraform and then change its owner in the owner
parameter, this will recreate the DB and its data will be lost.
Moving and restoring a cluster
Can I restore a cluster backup to a running Managed Service for PostgreSQL instance in a different cloud network?
You can only recover a cluster from a backup within a single cloud network.
To migrate data between cloud networks, follow the migration guide.
Can I change the retention period of automatic backups?
When creating or modifying a cluster, you can set the retention period for automatic backups.
Do I need the wal2json plugin if data is only replicated but not copied?
Yes, you need the plugin even if you do not copy data.
Can I make a local dump of a database backup?
You cannot use the service to make a local dump of a DB backup from Yandex Cloud but you can use the pg_dump utility
How do I move a local PostgreSQL database dump to Yandex Cloud?
Follow the steps described in Migrating databases.
Can I recover a single database from a backup?
No, you cannot select specific databases. You can only restore the entire cluster with all its databases.
Users and roles
Can I migrate users from a PostgreSQL source cluster to a Managed Service for PostgreSQL target cluster?
No, you cannot automatically migrate users from a third-party PostgreSQL cluster or a Managed Service for PostgreSQL cluster to a Managed Service for PostgreSQL cluster. You have to create users once again in the target cluster.
High availability and load balancing
How to exclude a host from the master selection?
You can exclude a host from the master selection when replacing the master host automatically or manually. To do this, set up cascade replication: specify a replication source for the host you want to exclude.
Warning
To ensure high availability during maintenance, your cluster must have at least one replica host without a replication source.
Why do I get an error when setting up cascading replication?
Error message:
cluster should have at least 2 HA hosts to use cascade host
The error occurs if you specify a replication source for a single non-cascading replica.
To ensure high availability, your cluster must have at least one replica without a replication source. During maintenance or if the master host fails, this replica will take over as the master.
To learn more about replication, see this guide.
How do I always connect to the master host?
To connect to the current master host, use a special FQDN. It has this format: c-<cluster_ID>.rw.mdb.yandexcloud.net
. When connected to this FQDN, you can perform read and write operations.
Example of command for connection to a master
psql "host=c-<cluster_ID>.rw.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<DB_name> \
user=<user_name>"
How do I always connect to the most recent replica?
To connect to the most recent replica, use a special FQDN. It has this format: c-<cluster_ID>.ro.mdb.yandexcloud.net
. When connected to this FQDN, you can perform only read operations.
Example of command for connection to a replica
psql "host=c-<cluster_ID>.ro.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<DB_name> \
user=<user_name>"
If there are no active replicas in the cluster, this FQDN will point to the current master host.
Why did the master and the replicas switch places?
This means the master has failed over to the replica host. Failover ensures cluster availability during maintenance or if the master fails.
Use a special FQDN to always connect to the current master.
Warning
Use master host special FQDN-based connections only for processes that can cope with database being unavailable for writing for up to 10 minutes.
Can I configure multimaster in a cluster or between two clusters?
No, Managed Service for PostgreSQL does not support multimaster configuration.
For more information on how to ensure high availability of a cluster, see High availability managed databases (MDB).
How do I configure load balancing so that read requests only go to replicas?
As Managed Service for PostgreSQL does not perform any load balancing, you need to configure it in your application backend. To send read requests to replicas, the application must independently recognize master and replica hosts, e.g., using libpq
. For more information, see this PostgreSQL article
Alternatively, use a special FQDN that points to the most recent replica.
For more information, see High availability.
Why does the master fail over to a randomly selected host when autofailover is off?
Even with autofailover disabled, the master host may switch to another host during maintenance or cluster updates. This helps keep the cluster working correctly during these operations.
Note
To ensure high availability, the cluster always has at least one replica without an explicitly defined replication source. This replica can take over as master when needed.
Why does the cluster switch masters after recovery, even though autofailover is disabled?
Even with autofailover disabled, the master host may switch to another host after recovery. This helps keep the cluster working correctly under such conditions. For more information, see High availability of a Managed Service for PostgreSQL cluster.
Why does the master fails over automatically during maintenance operations, even though autofailover is off?
Even with autofailover disabled, the master host may switch to another host to allow maintenance.
Monitoring and logs
Where can I track my use of disk space to avoid exceeding the 95% read-only limit?
You can track your disk space:
- In the management console using cluster status monitoring tools.
- In Yandex Monitoring
that allows you to set up alerts for specified metrics.
Are logs stored on the same disk as PostgreSQL data? How are they charged?
Logs are stored on different disks than data and rotated automatically. You can view log information using the CLI command below:
yc managed-postgresql cluster list-logs <cluster_ID>
Cluster log storage is free of charge.
What is the retention period for logs?
Cluster logs are stored for 30 days.
What are WALs and what are they used for?
Write-Ahead Logs
For more information about PostgreSQL, see the official documentation
What does the Cached parameter mean for PostgreSQL cluster host RAM monitoring?
Cached stores cached data. Most operations are performed in random-access memory, since this is where all database information is stored. Caching is applied both to databases and to disks, which may cause the amount of cached data to exceed the storage size.
If the amount of RAM used by applications increases, some of the cache memory may be released.
For more information about caching disk data in Linux, see the documentation
How do I get alerts on critical PostgreSQL cluster parameters?
Use Yandex Monitoring
How do I set up an alert that triggers as soon as a certain percentage of disk space has been used up?
Create an alert with the disk.used_bytes
metric in Yandex Monitoring. This metric shows the disk space usage in the Managed Service for PostgreSQL cluster.
For disk.used_bytes
, use notification thresholds. The recommended values are as follows:
Alarm
: 90% of the disk spaceWarning
: 80% of the disk space
Thresholds are set in bytes only. For example, the recommended values for a 100 GB disk are as follows:
Alarm
:96636764160
bytes (90%)Warning
:85899345920
bytes (80%)
Error messages
Why do I get an error when using the TimescaleDB extension?
Error message:
SQL Error [0A000]: ERROR: functionality not supported under the current "apache" license
Hint: Upgrade your license to 'timescale' to use this free community feature.
This error occurs when you attempt to use a function available only in TimescaleDB Community Edition.
The community edition is distributed under the Timescale license (TSL)
The version installed in a Managed Service for PostgreSQL cluster is TimescaleDB Apache 2 Edition, and its features are limited compared to the community version.
What should I do if I get the revocation check error when using PowerShell to obtain an SSL certificate?
Here is the full text of the error:
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012)
The revocation function was unable to check revocation for the certificate
This means, when connecting to the website, the service was unable to check whether or not its certificate was listed among revoked ones.
To fix this error:
-
Make sure the corporate network settings do not block the check.
-
Run the command with the
--ssl-no-revoke
parameter.mkdir $HOME\.postgresql; curl.exe --ssl-no-revoke -o $HOME\.postgresql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem
SSL is required
error when connecting?
What should I do if I get the The error occurs because you are trying to connect to the cluster with a public host. These hosts only support connections with an SSL certificate. You can:
- Obtain an SSL certificate and add it to the application you are using to connect to the cluster.
- Disable public access to hosts and connect to the cluster from a VM located in the same cloud network.
too many active clients for user
error when connecting?
What should I do if I get the Connecting to cluster hosts may fail with the following error:
too many active clients for user (pool_size for user <user_name> reached <limit_value>)
By default, a cluster reserves 50 connections to each host per user. If the connection limit per user is reached, any attempt to establish a new connection will fail with an error.
Solution: Increase the connection limit in the Conn limit setting.
To learn how to update PostgreSQL settings at the user level, see this tutorial.
Why do I get an error when connecting to a custom database?
Connecting to a custom database may fail with the following error:
ERROR: odyssey: ce3ea075f4ffa: route for '<DB_name>.<user_name>' is not found
The error means that the connection parameters contain an invalid database name.
Why do I get an error when connecting to the postgres database?
Connecting to the postgres
database fails with the following error:
ERROR: odyssey: c76e2c1283a7a: route for 'postgres.<user_name>' is not found
postgres
is a system database; connecting to it is prohibited in Managed Service for PostgreSQL. Specify a different database in the connection parameters.
terminating connection due to administrator command
?
Why does a connection terminate with A Managed Service for PostgreSQL cluster connection may be terminated with the following message:
FATAL: terminating connection due to administrator command
This message does not indicate an error, it means that the session/transaction duration has exceeded the Session duration timeout setting value (default value: 12 hours).
Why cannot I connect to cluster hosts?
Connecting to cluster hosts may fail with the following error:
could not translate host name "<regular or special FQDN>" to address: Name or service not known
This error occurs if public access to the host is denied or users are using custom DNS servers that do not allow domain names in the mdb.yandexcloud.net
zone.
Solution:
-
Enable public access for the host you are connecting to. When using a special FQDN, enable public access for the host the special FQDN points to.
Warning
Use master host special FQDN-based connections only for processes that can cope with database being unavailable for writing for up to 10 minutes.
-
We recommend that you enable public access for all cluster hosts. This will avoid connection errors during automatic master failover.
-
For custom DNS servers, configure DNS forwarding for the
mdb.yandexcloud.net
zone.
Why cannot I stop a cluster?
Error message:
ERROR: rpc error: code = FailedPrecondition desc = Cluster has no backups
A cluster that has no backups cannot be stopped. To fix the error and stop the cluster, create its backup.
max_connections is less than sum of users connection limit
error when modifying a cluster?
Why do I get the This error may occur when downgrading a host class in a cluster if the sum of connection limits for all users is less then the total cluster connection limit (Max connections).
Solution: First reduce the limits set for users so their sum is less than <Max_connections_value> — 15
and then proceed with host class downgrade.
Why does a data transfer through creating and restoring a logical dump fail with an error?
Restoring a logical dump may fail with one of the following errors:
ERROR: role "<source_username>" does not exist
ERROR: must be member of role "<source_username>"
The errors occur because the target cluster does not have the user (or the privileges of the user) who created the logical dump in the source cluster.
To resolve the errors:
- In the target cluster, add a user with access to the migrated database and the same name as the user who created the logical dump in the source cluster.
- Use this user to restore the logical dump or grant their privileges to the user who is restoring the logical dump.
replication slot already exists
error when performing logical replication?
What should I do if I get the By default, when you create a subscription, a replication slot is also created. The replication slot already exists
error means that a replication slot already exists.
You can fix this error by doing one of the following:
- Link your subscription to an existing replication slot. To do this, add the
create_slot = false
parameter to the request to create a subscription. - Delete the existing replication slot and try creating the subscription again.
extension... is not available
error when migrating my DB to Managed Service for PostgreSQL?
Why do I get an Error message:
extension "<extension_name>" is not available
You may get this error when migrating a DB to Managed Service for PostgreSQL with a script attempting to install and use the PostgreSQL extension. The reason for the error is that in Managed Service for PostgreSQL clusters, you cannot use SQL commands to manage PostgreSQL extensions.
To avoid this error:
- If the script or logical dump is in text format, remove the operators for creating PostgreSQL extensions from them.
- Install all required extensions in the target database using the Yandex Cloud interfaces.
Why do I get an error when setting up cascading replication?
Error message:
cluster should have at least 2 HA hosts to use cascade host
The error occurs if you specify a replication source for a single non-cascading replication.
To ensure high availability, your cluster must have at least one replica without a replication source. During maintenance or if the master host fails, this replica will take over as the master.
To learn more about replication, see this guide.
cannot execute <SQL_command> in a read-only transaction
error?
Why do I get the Error options:
ERROR: cannot execute ALTER EXTENSION in a read-only transaction
ERROR: cannot execute CREATE TABLE in a read-only transaction
ERROR: cannot execute UPDATE in a read-only transaction
ERROR: cannot execute INSERT in a read-only transaction
Such errors can occur after master failover if you connected to a read-only replica.
To prevent such errors, use any of the following ways:
-
Connect to the cluster using a special FQDN that always points to the current master.
Warning
Use master host special FQDN-based connections only for processes that can cope with database being unavailable for writing for up to 10 minutes.
-
When connecting, specify the
target_session_attrs=read-write
parameter and list all cluster hosts. This way, you will connect to the master host with read and write access.
For more information on how to connect to the master host, see Connecting to a database.