Описание PostgreSQL

Технические характеристики

В сервисе доступны две версии СУБД: PostgreSQL 11 и 12. Для создания кластера БД доступны следующие конфигурации флейворов:

  • 2 vCPU, 4 ГБ RAM, 32 ГБ локального диска;
  • 2 vCPU, 8 ГБ RAM, 64 ГБ локального диска;
  • 4 vCPU, 16 ГБ RAM, 128 ГБ локального диска;
  • 8 vCPU, 32 ГБ RAM 256 ГБ локального диска;
  • 16 vCPU, 64 ГБ RAM 512 ГБ локального диска;
  • 32 vCPU, 128 ГБ RAM 1024 ГБ локального диска.

Кластеры БД можно создавать только в приватных и публичных сетях:

  • Приватная сеть — к кластеру БД можно подключиться только из выбранной приватной сети;
  • Публичная сеть — к кластеру БД можно подключиться из интернета.

Настройки СУБД

Настройки СУБД подобраны специально для обеспечения высокой производительности баз данных. Параметры настроек зависят от выбранной конфигурации вычислительных ресурсов для кластера БД.

В случае изменения конфигурации кластера БД автоматически будут изменены следующие параметры:

shared_buffers 
effective_cache_size 
maintenance_work_mem
max_worker_processes 
max_parallel_workers 
autovacuum_max_workers 
vacuum_cost_limit 
max_parallel_workers_per_gather 
max_maintenance_workers 

Для просмотра всех настроек СУБД подключитесь к базе данных и выполните команду show all;.

Принцип работы

Шаг 1

Пользователь сервиса заполняет форму создания кластера:

  • выбирает конфигурацию вычислительных ресурсов;
  • указывает базовые настройки репликации (количество серверов в кластере БД);
  • выбирает подсеть, в которой будет доступен кластер. Если подсеть еще не создана, создайте её в разделе Сеть.

Сервис создает кластер баз данных.

После создания кластер можно переименовывать и удалять. Также можно изменять настройки кластера: увеличивать или уменьшать количество реплик, менять конфигурацию сервера.

Адреса серверов и подсеть, к которой подключен кластер, менять нельзя.

Шаг 2

После создания кластера нужно создать пользователей и базы данных.

Затем необходимо назначить пользователям права доступа на базы данных. Это можно сделать как из карточки базы данных, так и из карточки пользователя.

В кластере можно создать до 50 баз данных и до 50 пользователей. Все имена должны быть уникальными.

Шаг 3

На странице Настройки находится строка подключения — с ее помощью можно подключиться кластеру и начать работу.

Создание пользователя и базы данных

После создания кластера пользователь может создать внутри кластера базы данных и пользователей.

Сначала нужно создать пользователя. Это необходимо, так как при создании базы данных требуется выбрать пользователя-владельца.

Владелец базы данных – это пользователь, которому будут переходить права владения объектами, которые создали удаленные пользователи. Это позволит вам не потерять доступ к объектам удаленных пользователей.

Владелец базы данных имеет доступ в эту базу, только пока является владельцем. Если вы хотите заменить владельца, но чтобы при этом у бывшего владельца остался доступ, явно выдайте ему доступ в базу данных.

Чтобы создать пользователя:

  1. Перейдите на страницу кластера баз данных.
  2. Перейдите на вкладку Пользователи.
  3. Нажмите кнопку Создать пользователя.
  4. Введите имя и задайте пароль. Примечание: сохраните пароль, так как в панели управления он храниться не будет.

Чтобы создать базу данных:

  1. Перейдите на вкладку Базы данных.
  2. Нажмите кнопку Создать базу данных.
  3. Введите название, выберите пользователя-владельца и настройте локали сортировки и набора символов.

Локаль набора символов отвечает за классификацию символов и различия в их регистре. Локаль сортировки определяет настройки сравнения строк и символов, а также влияет на сортировку. Локали нужно настраивать, чтобы данные в базах корректно обрабатывались. Подробнее о локалях – в документации PostgreSQL.

После создания баз данных и пользователей можно дать пользователям доступ к определенным базам данных.

Подключение расширений к базе данных

Для подключения расширений через интерфейс:

  1. Перейдите в раздел Базы данных внутри кластера.
  2. Раскройте аккордеон с настройками в карточке базы данных.
  3. Нажмите кнопку Добавить напротив пункта Расширения.
  4. Выберите из списка все необходимые расширения и сохраните настройки.

К каждой базе данных расширения подключаются отдельно.

Пулер соединений

Для управления пулом соединений кластеры PostgreSQL используют PgBouncer. PgBouncer минимизирует издержки при установке новых подключений к PostgreSQL. Пул соединений можно настроить при создании кластера и в процессе его работы – на странице Настройки.

Для настройки выберите значения для параметров:

Режим пулинга

Cтратегия соединения сервера приложения с базой данных.

Чтобы не нарушать семантику транзакций при переключении подключений, pgbouncer поддерживает несколько режимов пулов:

  • Transaction — соединение назначено на клиента на время транзакции. Режим позволяет каждому клиенту использовать пул в течение одной транзакции за раз.

    Если в пуле недостаточно доступных соединений для обработки отправленных транзакций, дополнительные транзакции ставятся в очередь для запуска, как только соединения станут доступны.

    Режим транзакции полезен, когда у вас есть большое количество клиентов, которые поддерживают соединение.

    Этот режим включен по умолчанию.

  • Session — соединение назначено, пока клиент подключен. Режим позволяет клиентам продолжать отправлять запросы до тех пор, пока они не отключатся от базы данных, которая поддерживает соединение клиента все время.

    Если в пуле недостаточно доступных подключений для обработки всех подключающихся клиентов, дополнительные клиенты ставятся в очередь. Они будут подключены после отключения подключенных клиентов.

    Режим сеанса полезен, когда ваше приложение использует подготовленные операторы, рекомендательные блокировки, прослушивание/уведомление или другие функции, которые работают на уровне сеанса, а не на уровне транзакции.

  • Statement — транзакции с несколькими операторами запрещены.

    Наиболее строгий режим, который позволяет выполнять только один оператор за раз, прежде чем перейти к следующему в очереди. Это означает, что запросы с несколькими операторами не разрешены и завершаются ошибкой.

    Режим оператора полезен, когда вы принудительно выполняете автоматическую фиксацию для каждого клиента, что означает, что каждая транзакция ограничена одним оператором.

Размер пула

Количество разрешенных одновременных соединений от пулера к PostgreSQL.

Размер пула отвечает за то, какое количество одновременных соединений от пулера к PostgreSQL разрешено. По умолчанию размер пула равен 30, это значение можно увеличить до 50.