General questions about Managed Service for PostgreSQL
-
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?
What is Managed Service for PostgreSQL?
Managed Service for PostgreSQL is a service that helps you create, operate, and scale PostgreSQL databases in the cloud.
With Managed Service for PostgreSQL, you can:
- Create databases with performance settings tailored to your needs.
- Scale your database compute and dedicated storage capacity as needed.
- Access database performance and activity logs.
Managed Service for PostgreSQL handles the heavy lifting of PostgreSQL infrastructure administration for you:
- Provides monitoring of your resource consumption.
- Automatically backs up your databases.
- Ensures fault tolerance through automatic failover to backup replicas.
- Keeps your DBMS software up to date.
You work with a Managed Service for PostgreSQL database cluster just like with your local database. This allows you to fine-tune your database’s internal settings to meet your application’s specific requirements.
What parts of database management and maintenance does Managed Service for PostgreSQL handle?
During cluster creation, Managed Service for PostgreSQL allocates resources, installs the DBMS, and creates the databases.
Managed Service for PostgreSQL automatically manages backups and applies DBMS patches and updates for your deployed databases.
Furthermore, Managed Service for PostgreSQL ensures data replication, both within and across availability zones, with automatic failover to a standby replica during a failure.
Be mindful of what is what is controlled by the service, and what by the Yandex Cloud customer. Understanding these control zones will help you use your cloud resources effectively and avoid potential database-related problems. For more information, see Zones of control between managed database (MDB) service users and Yandex Cloud.
When should I use Managed Service for PostgreSQL, and when should I use VMs running databases?
Yandex Cloud offers two ways to work with databases:
- Managed Service for PostgreSQL: Enables you to operate template databases without needing to manage their administration.
- Yandex Compute Cloud VM: Enables you to create and configure your own databases. With this approach, you can use any database management systems, access databases via SSH, and more.
What is a database host and what is a database cluster?
A database host is an isolated database environment in the cloud with dedicated computing resources and a reserved storage capacity.
A database cluster is one or more database hosts that allow configuring replication between them.
How do I get started with Managed Service for PostgreSQL?
Managed Service for PostgreSQL is available to all registered Yandex Cloud users.
To create a database cluster in Managed Service for PostgreSQL, you need to define its settings:
- Host class (performance parameters, such as CPUs, RAM, etc.).
- Storage size (fully reserved when creating the cluster).
- Network your cluster will be connected to.
- Number of hosts for your cluster and availability zone for each host.
For detailed instructions, see Getting started with Managed Service for PostgreSQL.
How many database hosts can be in a 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 cannot exceed the set limits.
For more information, see Quotas and limits in Managed Service for PostgreSQL.
How to get access to a running host?
You can connect to Managed Service for PostgreSQL databases using standard DBMS methods.
Learn more about connecting to clusters here.
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 database clusters maintained?
In Managed Service for PostgreSQL, maintenance implies:
- Automatic installation of DBMS updates and fixes 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 an expected maintenance period 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:
- Selected host class.
- Size of 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 based on the pricing policy.
- Database host uptime in hours. Partial hours are rounded up to the nearest whole hour. 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 compute and storage capacity 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 relevant cluster.
The cluster settings update within 30 minutes. This period may also include other cluster maintenance activities, such as installing updates.
Can I configure automatic storage expansion for a cluster?
Yes, you can set up automatic increase of the storage size when creating or updating a cluster.
Are database host backups 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 created? Does a database cluster remain online during backups?
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.
Is encryption enabled for PostgreSQL database cluster connections?
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 monitored?
For all DBMS types, you can monitor:
- 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 monitor metrics specific to their type of DBMS. For example, for PostgreSQL, you can monitor:
- Average query execution time.
- Number of queries per second.
- Number of errors in logs, and more.
Monitoring can be performed with a minimum granularity of five 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. Do it by contacting support
What restrictions are placed 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.
Can I get superuser privileges in PostgreSQL?
No, you cannot. Superuser privileges are not available to Managed Service for PostgreSQL users. Cluster actions of all types are available to users with the mdb_admin role.
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 specific features or restrictions for the garbage collector in a Managed Service for PostgreSQL cluster?
Managed Service for PostgreSQL clusters support all parameters of the VACUUM command
- To run
VACUUM FULL, the user must have themdb_adminrole. The VACUUM FULL command does not affect system views. - In PostgreSQL version 14, the
INDEX_CLEANUPparameter functionality has been enhanced: it now has theAUTOvalue by default. This means theVACUUMcommand skips index cleaning if it considers it unnecessary. To ensure backward compatibility with the previous PostgreSQL versions, setINDEX_CLEANUPtoON.
Why is my cluster slow even though the computational resources are not being fully utilized?
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 updating 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.