Облачная платформаEvolution

Отказоустойчивость кластера Managed PostgreSQL®


Надежность базы данных в облаке обеспечивается двумя взаимодополняющими механизмами:

  • Репликация — дублирование данных с основного узла на один или несколько резервных узлов.

  • Мультизональность — распределение узлов по разным зонам доступности.

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

Роли узлов

В кластере Managed PostgreSQL® узлы выполняют разные роли:

  • Primary — основной узел (мастер), принимает все операции записи и чтения.

  • Standby — реплика, может использоваться только для чтения.

Репликация

Репликация позволяет:

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

  • балансировать нагрузку — распределить запросы на чтение между репликами и снизить нагрузку на мастер.

Потоковая репликация

Потоковая репликация — вид репликации, при которой изменения на мастере фиксируются в WAL, а затем передаются на реплику. Далее реплика по этому журналу изменяет свои данные.

Режимы потоковой репликации:

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

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

Для кластеров в режиме «Бизнес» с тремя узлами используется синхронная кворумная репликация (ANY 1). Мастер ожидает подтверждения от одной из двух реплик, что снижает задержки по сравнению с двухузловой синхронной репликацией и гарантирует сохранность данных при сбое.

Failover

Failover используется в PostgreSQL® для автоматического переключения нагрузки с мастера на реплику. Благодаря репликации данные в реплике остаются актуальными.

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

Мультизональность

Мультизональное размещение позволяет повысить отказоустойчивость кластера на уровне инфраструктуры. Если все узлы находятся в одной зоне доступности, сбой или обслуживание в этой зоне приведут к полной недоступности базы данных. При распределении узлов по нескольким зонам база данных продолжает работать даже при отказе одной из зон.

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

Варианты топологий кластера

В зависимости от выбранных при создании кластера режима и распределения узлов возможны следующие топологии:

Тип кластера

Режим

Количество узлов

Размещение

Отказоустойчивость

Single

Любой

1 узел с ролью Primary

Одна зона

Отсутствует. Подходит для разработки, тестирования.

Primary/Standby

Стандарт

2 (Primary + Standby)

Одна зона

Базовая: при сбое мастера выполняется автоматическое переключение (failover). При отказе зоны кластер становится недоступен.

Primary/Standby

Бизнес

2 (Primary + Standby)

Одна или разные зоны

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

Если узлы в разных зонах: кластер выдерживает сбой одной зоны. При сбое мастера выполняется автоматическое переключение (failover).

Cluster HA (3 узла в одной зоне)

Бизнес

3 (Primary + 2 Standby)

Одна зона

Высокая внутри одной зоны: при сбое мастера выполняется автоматическое переключение (failover). При отказе зоны кластер недоступен.

Cluster HA (3 узла в разных зонах)

Бизнес

3 (Primary + 2 Standby)

Разные зоны: по одному узлу в зоне

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

Преимущества трехузлового мультизонального кластера

Трехузловая конфигурация с размещением в разных зонах (Cluster HA) является рекомендованной для production‑окружений.

  • Синхронная кворумная репликация

    Скорость выполнения запросов выше, риски рассинхронизации данных на репликах снижаются. Транзакция в среднем подтверждается быстрее: ее должны подтвердить мастер и одна из реплик.

  • Мультизональность

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

  • Масштабирование чтения

    Две реплики могут обслуживать запросы на чтение, снижая нагрузку на мастер.