Высокая доступность и балансировка
-
Как всегда подключаться к наименее отстающей от мастера реплике?
-
Можно ли настроить мультимастер в кластере или между двумя кластерами?
-
Как настроить балансировку, чтобы запросы на чтение уходили на реплики?
Как исключить хост из выбора мастером?
Вы можете исключить хост из выбора мастером при автоматической или ручной смене хоста-мастера. Для этого настройте каскадную репликацию: укажите источник репликации для хоста, который не должен становиться мастером.
Важно
Для обеспечения высокой доступности во время технического обслуживания в кластере должен быть хотя бы один хост-реплика без источника репликации.
Почему при настройке каскадной репликации возникает ошибка?
Текст ошибки:
cluster should have at least 2 HA hosts to use cascade host
Ошибка возникает, если вы указываете источник репликации для единственной некаскадной реплики.
Для обеспечения высокой доступности в кластере должна быть хотя бы одна реплика без источника репликации. Во время технического обслуживания или при сбое хоста-мастера роль мастера переключится на эту реплику.
Подробнее о репликации см. в соответствующем разделе.
Как всегда подключаться к хосту-мастеру?
Чтобы подключиться к текущему хосту-мастеру, используйте особый FQDN. Он имеет вид c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
. При подключении к этому FQDN вы сможете выполнять операции чтения и записи.
Пример команды для подключения к мастеру
psql "host=c-<идентификатор_кластера>.rw.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<имя_БД> \
user=<имя_пользователя>"
Как всегда подключаться к наименее отстающей от мастера реплике?
Чтобы подключиться к наименее отстающей от мастера реплике, используйте особый FQDN. Он имеет вид c-<идентификатор_кластера>.ro.mdb.yandexcloud.net
. При подключении к этому FQDN вы сможете выполнять только операции чтения.
Пример команды для подключения к реплике
psql "host=c-<идентификатор_кластера>.ro.mdb.yandexcloud.net \
port=6432 \
sslmode=verify-full \
dbname=<имя_БД> \
user=<имя_пользователя>"
Если в кластере нет активных реплик, то этот FQDN укажет на текущий хост-мастер.
Почему мастер и реплики поменялись местами?
Это значит, что произошло переключение роли мастера на хост-реплику. Переключение обеспечивает доступность кластера во время технического обслуживания и при выходе из строя хоста-мастера.
Чтобы всегда подключаться к текущему мастеру, используйте особый FQDN.
Важно
Используйте подключение с помощью особого FQDN хоста-мастера только для процессов, которые допускают недоступность базы данных на запись продолжительностью до 10 минут.
Можно ли настроить мультимастер в кластере или между двумя кластерами?
Нет, в сервисе Managed Service for PostgreSQL не поддерживается настройка мультимастера.
Подробнее об обеспечении высокой доступности кластера см. в разделе Высокая доступность управляемых баз данных (MDB).
Как настроить балансировку, чтобы запросы на чтение отправлялись только на реплики?
Балансировка не осуществляется на стороне Managed Service for PostgreSQL, поэтому ее необходимо реализовать в бэкенде вашего приложения. Чтобы отправлять запросы на чтение репликам, приложение должно определить самостоятельно, какой из хостов является репликой, а какой — мастером. Например, это можно сделать с помощью библиотеки libpq
. Подробнее см. в документации PostgreSQL
Либо вы можете воспользоваться особым FQDN, который указывает на наименее отстающую реплику.
Дополнительные сведения см. в разделе Высокая доступность.
Почему мастер переключается на случайно выбранный хост при отключенной опции автоматического переключения мастера?
Во время операций изменения кластера и в рамках технического обслуживания хост-мастер может переключиться на другой хост даже при запрете на автоматическое переключение. Это сделано для обеспечения правильной работы кластера при указанных действиях.
Примечание
Чтобы обеспечить высокую доступность, в кластере всегда есть хотя бы одна реплика без явно указанного источника репликации, которая может стать мастером.
Почему при восстановлении работоспособности кластера происходит смена мастера, несмотря на отключенную опцию автоматического переключения мастера?
Хост-мастер может переключиться на другой хост при восстановлении работоспособности даже при запрете на автоматическое переключение. Это сделано для обеспечения правильной работы кластера в указанных условиях. Подробнее читайте в разделе Высокая доступность кластера Managed Service for PostgreSQL.
Почему во время операций обслуживания происходит автоматическое переключение мастера, хотя эта опция выключена?
Хост-мастер может переключиться на другой хост даже при запрете на автоматическое переключение, чтобы обеспечить выполнение технического обслуживания.