Высокий уровень доступности в 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.
- Работоспособно: высокая доступность включена, а узел полностью реплицируется в резервный узел.
- Выполняется отработка отказа: на основном узле обнаружена ошибка, и инициирована отработка отказа в резервный узел. Это состояние переходит в создание резервного режима после отработки отказа на резервный узел, а резервный — новый первичный.
- Создание резервного файла: предыдущий резервный файл повышен до основного, и для него создается новый резервный узел. Когда новая вторичная будет готова, это состояние переходит в репликацию во время выполнения.
- Выполняется репликация: выполняется подготовка нового резервного узла и синхронизация данных После репликации всех данных в новый резервный режим синхронная репликация включена между основными и резервными узлами, а состояние узлов переходит обратно в "Работоспособное".
- Нет: высокая доступность не включена на этом узле.
Следующие шаги
- Узнайте, как включить высокий уровень доступности в кластере.
- Сведения о зонах доступности в Azure Cosmos DB для PostgreSQL.