Поделиться через


Высокий уровень доступности в Azure Cosmos DB for PostgreSQL

Область применения: Azure Cosmos DB для PostgreSQL (на базе расширения базы данных Citus до PostgreSQL)

Высокий уровень доступности (HA) сокращает время простоя базы данных, сохраняя резервные реплики каждого узла в кластере. Если узел выходит из строя, Azure Cosmos DB for PostgreSQL переключает входящие подключения с проблемного узла на соответствующий резервный. Отработка отказа выполняется в течение нескольких минут. Узлы, для которых повышается уровень, всегда получают свежие данные посредством синхронной потоковой репликации PostgreSQL.

Все основные узлы в кластере подготавливаются в одну зону доступности для повышения задержки между узлами. Предпочтительная зона доступности позволяет поместить все узлы кластера в одну зону доступности, в которой развернуто приложение. Это позволяет повысить производительность, уменьшая задержку в базе данных приложений. Резервные узлы подготавливаются в другую зону доступности. В портал Azure отображается зона доступности каждого первичного узла в кластере. Вы также можете проверить зону доступности каждого узла в кластере с помощью одного из программных методов, таких как REST API.

Даже без включения высокой доступности каждый узел имеет собственное локально избыточное хранилище (LRS) с тремя синхронными репликами, поддерживаемыми службой служба хранилища Azure. При сбое одной реплики она обнаруживается службой хранилища Azure и прозрачно создается повторно. Сведения о надежности хранилища LRS см. в разделе метрик на этой странице.

При включении высокой доступности Azure Cosmos DB для PostgreSQL запускает один резервный узел для каждого первичного узла в кластере. Основная и резервная базы данных используют синхронную репликацию PostgreSQL. Такая репликация гарантирует клиентам предсказуемое время простоя в случае сбоя основного узла. В двух словах, наша служба обнаруживает сбой на основных узлах и переходит на резервные узлы без потери каких-либо данных.

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

Состояния высокого уровня доступности

Восстановление можно разделить на три этапа: обнаружение, отработка отказа и полное восстановление. Azure Cosmos DB для PostgreSQL выполняет периодические проверки работоспособности на каждом узле, и после четырех неудачных проверок он определяет, что узел отключен. Затем Azure Cosmos DB для PostgreSQL повышает состояние резервного подключения к основному узлу (отработка отказа) и создает новый резервный режим. Начинается потоковая репликация, которая поддерживает этот узел в актуальном состоянии. Когда завершится репликация всех данных, узел считается полностью восстановленным.

Azure Cosmos DB для PostgreSQL отображает состояние хода отработки отказа на странице обзора кластеров в портал Azure.

  • Работоспособно: высокая доступность включена, а узел полностью реплицируется в резервный узел.
  • Выполняется отработка отказа: на основном узле обнаружена ошибка, и инициирована отработка отказа в резервный узел. Это состояние переходит в создание резервного режима после отработки отказа на резервный узел, а резервный — новый первичный.
  • Создание резервного файла: предыдущий резервный файл повышен до основного, и для него создается новый резервный узел. Когда новая вторичная будет готова, это состояние переходит в репликацию во время выполнения.
  • Выполняется репликация: выполняется подготовка нового резервного узла и синхронизация данных После репликации всех данных в новый резервный режим синхронная репликация включена между основными и резервными узлами, а состояние узлов переходит обратно в "Работоспособное".
  • Нет: высокая доступность не включена на этом узле.

Следующие шаги