Создание реплика чтения и управление ими в База данных Azure для PostgreSQL — гибкий сервер из портал Azure, CLI или REST API
Статья
Область применения: гибкий сервер Базы данных Azure для PostgreSQL
В этой статье вы узнаете, как создавать реплика чтения и управлять ими на гибком сервере База данных Azure для PostgreSQL из портал Azure, CLI и REST API. Дополнительные сведения о репликах чтения см. в этой статье.
Необходимые компоненты
База данных Azure для PostgreSQL гибкий экземпляр сервера, который должен быть основным сервером.
Примечание.
При развертывании реплика чтения для постоянных интенсивных основных рабочих нагрузок с интенсивным записью задержка реплика может продолжать расти и никогда не догонять основной. Это также может увеличить использование хранилища в основном, так как WAL-файлы удаляются только после получения в реплика.
Просмотр основных параметров
Перед настройкой реплика чтения для гибкого сервера База данных Azure для PostgreSQL убедитесь, что основной сервер настроен на соответствие необходимым предварительным требованиям. Определенные параметры на основном сервере могут повлиять на возможность создания реплика.
служба хранилища автоматическое увеличение: служба хранилища параметры автоматического увеличения на основном сервере и его реплика чтения должны соответствовать определенным рекомендациям, чтобы обеспечить согласованность и предотвратить нарушения реплика. Дополнительные сведения о подробных правилах и параметрах см. в служба хранилища.
SSD уровня "Премиум" версии 2. Текущий выпуск не поддерживает создание реплика чтения для основных серверов с помощью хранилища SSD уровня "Премиум" версии 2. Если для рабочей нагрузки требуются реплика чтения, выберите другой вариант хранилища для основного сервера.
В портал Azure выберите База данных Azure для PostgreSQL гибкий экземпляр сервера, который вы хотите использовать для реплика.
В диалоговом окне "Обзор" обратите внимание на версию PostgreSQL (например15.4). Кроме того, обратите внимание, что основной регион развертывается в (например, East US).
На боковой панели сервера в разделе Параметры выберите "Вычисления и хранилище".
Просмотрите и запишите следующие параметры:
Уровень вычислений, процессор, размер (например Standard_D4ads_v5).
Хранилище
служба хранилища размер (например128GB)
Авторасширение
Высокий уровень доступности
Включено или отключено
Параметры зоны доступности
Параметры резервного копирования
Период хранения
Параметры избыточности
В разделе Параметры выберите Сеть.
Проверьте настройки сети.
Примечание.
Команды, указанные в этом руководстве, применимы для Azure CLI версии 2.56.0 или более поздней. Убедитесь, что у вас установлена требуемая версия или более поздняя для успешного выполнения этих команд. Вы можете проверка текущую версию Azure CLI, выполнив команду az --version в интерфейсе командной строки. Чтобы обновить Azure CLI до последней версии, следуйте инструкциям, приведенным в документации по Azure CLI.
Чтобы просмотреть конфигурацию и текущее состояние гибкого сервера Azure PostgreSQL, используйте az postgres flexible-server show команду. Эта команда содержит подробные сведения о указанном сервере.
az postgres flexible-server show \
--resource-group <resource-group> \
--name <server-name>
<server-name> Замените <resource-group> определенную группу ресурсов и имя сервера, который вы хотите просмотреть.
Просмотрите и запишите следующие параметры:
Уровень вычислений, процессор, размер (например Standard_D8ads_v5).
Чтобы получить сведения о конфигурации сервера в База данных Azure для PostgreSQL гибком сервере, особенно для просмотра параметров недавно представленных функций, таких как автоматическое увеличение хранилища или приватный канал, следует использовать последнюю версию 2023-06-01-previewAPI. Запрос GET будет отформатирован следующим образом:
Замените {subscriptionId}, {resourceGroupName}а также {serverName} идентификатором подписки Azure, именем группы ресурсов и именем основного сервера, который вы хотите проверить соответственно. Этот запрос предоставляет доступ к сведениям о конфигурации основного сервера, обеспечивая правильную настройку для создания реплика чтения.
Просмотрите и запишите следующие параметры:
Уровень вычислений, процессор, размер (например Standard_D8ads_v5).
Выберите существующий База данных Azure для PostgreSQL гибкий экземпляр сервера для использования в качестве основного сервера.
На боковой панели сервера в Параметры выберите "Репликация".
Выберите Создать реплику.
Введите форму "Основы" со следующими сведениями.
Выберите "Проверить и создать", чтобы подтвердить создание реплика или далее: сеть, если вы хотите добавить, удалить или изменить правила брандмауэра.
Оставьте оставшиеся значения по умолчанию, а затем нажмите кнопку "Просмотр и создание " в нижней части страницы или перейдите к следующим формам, чтобы добавить теги или изменить метод шифрования данных.
Проверьте сведения в окне окончательного подтверждения. Когда будете готовы, нажмите Создать. Создается новое развертывание.
Во время развертывания основной объект отображается в Updating состоянии.
После создания реплика чтения его можно просмотреть в окне репликации.
Замените <replica-name>, <source-server-name><resource-group>и <location> с конкретными значениями.
После создания реплика чтения свойства всех серверов, которые являются реплика первичного реплика, можно получить с помощью az postgres flexible-server replica create команды.
az postgres flexible-server replica list \
--name <source-server-name> \
--resource-group <resource-group>
Замените и <resource-group> укажите <source-server-name>определенные значения.
HTTP PUT Инициируйте запрос с помощью API создания серверов:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Здесь необходимо заменить {subscriptionId}{resourceGroupName}{replicaserverName} идентификатор подписки Azure, имя группы ресурсов и требуемое имя для реплика чтения соответственно.
После создания реплика чтения свойства всех серверов, которые являются реплика первичного реплика, можно получить путем инициирования HTTP GET запроса с помощью списка реплика по API сервера:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/replicas?api-version=2022-12-01
Здесь необходимо заменить {subscriptionId}{resourceGroupName}{sourceserverName} идентификатор подписки Azure, имя группы ресурсов и имя, назначенное основной реплика соответственно.
Задайте для вычислительных ресурсов и хранилища данные, записанные из основного ресурса. Если отображаемые вычисления не совпадают, выберите "Настроить сервер " и выберите соответствующий.
Примечание.
Если выбрать размер вычислительных ресурсов меньше основного, развертывание завершится ошибкой. Кроме того, помните, что размер вычислительных ресурсов может быть недоступен в другом регионе.
Чтобы избежать проблем при продвижении реплика постоянно изменяют следующие параметры сервера на реплика сначала, прежде чем применять их к основному: max_connections, max_prepared_transactions, max_locks_per_transaction, . max_wal_sendersmax_worker_processes
Создание виртуальных конечных точек
Примечание.
Все операции, связанные с виртуальными конечными точками, например добавление, редактирование или удаление, выполняются в контексте первичного сервера.
Замените <resource-group>, <virtual-endpoint-name><primary-name>и <replica-name> с конкретными значениями.
Чтобы создать виртуальную конечную точку с помощью REST API Azure, используйте HTTP PUT запрос. Запрос будет выглядеть следующим образом:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints/{virtualendpointName}?api-version=2023-06-01-preview
Сопровождающий текст JSON для этого запроса выглядит следующим образом:
{replicaserverName} Здесь необходимо заменить имя сервера реплика, который вы включаете в качестве целевой точки чтения в эту виртуальную конечную точку.
Вывод списка виртуальных конечных точек
Чтобы получить список виртуальных конечных точек, выполните следующие действия.
На боковой панели сервера в Параметры выберите "Репликация".
В верхней части страницы отображаются конечные точки чтения и записи, а также имена серверов, на которые они указывают.
Сведения о виртуальной конечной точке можно просмотреть с помощью команды list или show команды. Учитывая, что для каждой пары первичной реплика разрешено только одна виртуальная конечная точка, обе команды дают одинаковый результат.
Ниже приведен пример использования list команды:
az postgres flexible-server virtual-endpoint list \
--resource-group <resource-group> \
--server-name <server-name>
Замените <server-name> именем основного сервера и <resource-group> именем группы ресурсов.
Вот как можно использовать show команду:
az postgres flexible-server virtual-endpoint show \
--name <virtual-endpoint-name>
--resource-group <resource-group> \
--server-name <server-name>
В этой команде замените <virtual-endpoint-name>и<server-name><resource-group> соответствующими именами. <server-name> — имя основного сервера.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints?api-version=2023-06-01-preview
{sourceserverName} Здесь должно быть имя первичного сервера, с которого вы управляете виртуальными конечными точками.
Изменение приложения для указания на виртуальную конечную точку
Измените все приложения, использующие гибкий экземпляр сервера База данных Azure для PostgreSQL, чтобы использовать новые виртуальные конечные точки (например, corp-pg-001.writer.postgres.database.azure.com иcorp-pg-001.reader.postgres.database.azure.com).
Повышение реплика
Все необходимые компоненты готовы к выполнению повышения реплика до основной операции.
Чтобы повысить уровень реплика из портал Azure, выполните следующие действия.
В портал Azure выберите основной База данных Azure для PostgreSQL гибкий экземпляр сервера.
В меню сервера в разделе Параметры выберите "Репликация".
В разделе "Серверы" выберите значок "Повышение" для реплика.
В диалоговом окне убедитесь, что действие "Повышение уровня" на первичный сервер.
Для синхронизации данных убедитесь, что запланированные данные — синхронизация данных перед выбранным повышением .
Выберите "Повысить" , чтобы начать процесс. После завершения роли обратно: реплика становится основной, а основной предполагает роль реплика.
При продвижении реплика на первичный сервер в гибком сервере Azure PostgreSQL используйте az postgres flexible-server replica promote команду. Этот процесс необходим для повышения уровня реплика сервера для работы в качестве основного сервера и понижения текущей основной роли на реплика роли. Укажите --promote-mode switchover и --promote-option planned в команде.
<replica-server-name> Замените <resource-group> определенную группу ресурсов и реплика имя сервера. Эта команда обеспечивает плавное переход реплика на основную роль в плановом режиме.
При продвижении реплика на первичный сервер используйте HTTP PATCH запрос с определенным JSON текстом, чтобы задать варианты продвижения. Этот процесс имеет решающее значение, если необходимо повысить уровень реплика сервера для работы в качестве основного сервера.
В этом случае JSONповышение устанавливается в switchover режиме с параметром planned повышения. Хотя есть два варианта продвижения - planned или forced - выбран planned для этого упражнения.
Примечание.
Реплика, которые вы продвигаете, должны назначить виртуальную конечную точку чтения или вы получите ошибку по повышению уровня.
Тестовые приложения
Чтобы выполнить некоторые операции, перезапустите приложения и повторите эти операции. Приложения должны работать без изменения записей виртуальной конечной точки строка подключения или DNS. Оставьте приложения работать на этот раз.
Восстановление размещения на исходном сервере и регионе
Повторите те же операции, чтобы повысить исходный сервер до основного.
На боковой панели сервера в Параметры выберите "Репликация"
В разделе "Серверы" выберите значок "Повышение" для реплика.
В диалоговом окне убедитесь, что действие "Повышение уровня" на первичный сервер.
Для синхронизации данных убедитесь, что запланированные данные — синхронизация данных перед выбранным повышением .
Выберите "Повышение", начинается процесс. После завершения роли обратно: реплика становится основной, а основной предполагает роль реплика.
На этот раз измените <replica-server-name> командуaz postgres flexible-server replica promote, чтобы ссылаться на старый первичный сервер, который в настоящее время выступает в качестве реплика, и снова выполните запрос.
<replica-server-name> Замените <resource-group> определенную группу ресурсов и текущее имя сервера реплика.
На этот раз измените {replicaserverName} запрос API, чтобы ссылаться на старый первичный сервер, который в настоящее время выступает в качестве реплика, и снова выполните запрос.
В этом случае JSONповышение устанавливается в switchover режиме с параметром planned повышения. Хотя есть два варианта продвижения - planned или forced - выбран planned для этого упражнения.
Тестовые приложения
Снова переключитесь на одно из используемых приложений. Подождите, пока основной и реплика состояние изменится, Updating а затем попытайтесь выполнить некоторые операции. Во время повышения уровня реплика приложение может столкнуться с временными проблемами подключения к конечной точке:
Добавление дополнительных реплика чтения
Создайте дополнительный реплика чтения в отдельном регионе, чтобы изменить виртуальную конечную точку чтения и разрешить создание независимого сервера из первой реплика.
В портал Azure выберите основной База данных Azure для PostgreSQL гибкий экземпляр сервера.
На боковой панели сервера в Параметры выберите "Репликация".
Выберите Создать реплику.
Введите форму "Основы" с информацией в третьем регионе (например westus , и corp-pg-westus-001)
Выберите "Проверить и создать", чтобы подтвердить создание реплика или далее: сеть, если вы хотите добавить, удалить или изменить правила брандмауэра.
Проверьте параметры брандмауэра. Обратите внимание, что основные параметры копируются автоматически.
Оставьте оставшиеся значения по умолчанию и нажмите кнопку "Проверить и создать " в нижней части страницы или перейдите к следующим формам, чтобы настроить безопасность или добавить теги.
Проверьте сведения в окне окончательного подтверждения. Когда будете готовы, нажмите Создать. Создается новое развертывание.
Во время развертывания основной объект отображается в Updating состоянии.
Выберите отдельное имя, чтобы <replica-name> отличить его от основного сервера и других реплика.
Замените <resource-group>, <source-server-name>а также <location> с конкретными значениями.
Вы можете создать вторичную реплика чтения с помощью API создания серверов:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Выберите отдельное имя, чтобы {replicaserverName} отличить его от основного сервера и других реплика.
В портал Azure выберите основной База данных Azure для PostgreSQL гибкий экземпляр сервера.
На боковой панели сервера в Параметры выберите "Репликация".
Выберите многоточие и нажмите кнопку "Изменить".
В диалоговом окне выберите новый дополнительный реплика.
Выберите Сохранить. Конечная точка чтения теперь указывает на вторичную реплика, и операция повышения теперь привязана к этой реплика.
Теперь можно изменить конечную точку читателя, чтобы указать только что созданную вторичную az postgres flexible-server virtual-endpoint update реплика с помощью команды. Не забудьте заменить <replica-name> имя только что созданного реплика чтения.
Замените <resource-group>, <virtual-endpoint-name><server-name>и <replica-name> с конкретными значениями.
Теперь можно изменить конечную точку читателя, чтобы указать только что созданную вторичную PATCH реплика с помощью запроса. Не забудьте заменить {replicaserverName} имя только что созданного реплика чтения.
В портал Azure выберите сервер-источник База данных Azure для PostgreSQL гибкого сервера.
На боковой панели сервера в меню сервера в Параметры выберите "Репликация".
В разделе "Серверы" выберите значок "Повышение" для реплика, который требуется повысить до независимого сервера.
В диалоговом окне убедитесь, что действие является повышением до независимого сервера и удалением из реплика. Это не повлияет на основной сервер.
Для синхронизации данных убедитесь, что запланированные данные — синхронизация данных перед выбранным повышением .
Выберите "Повышение", начинается процесс. После завершения сервер больше не является реплика первичного сервера.
При продвижении реплика в гибком сервере Azure PostgreSQL поведение по умолчанию заключается в том, чтобы повысить его до независимого сервера. Повышение достигается с помощью az postgres flexible-server replica promote команды без указания --promote-mode параметра, так как standalone режим предполагается по умолчанию.
В этой команде замените <resource-group> и <replica-server-name> на имя определенной группы ресурсов и имя первого созданного сервера реплика, который больше не является частью виртуальной конечной точки.
Вы можете повысить уровень реплика на автономный сервер с помощью PATCH запроса. Отправьте запрос на указанный PATCH URL-адрес REST API управления Azure с первым JSON текстом, где PromoteMode задано значение standalone и PromoteOption значение planned. JSON Второй формат текста, для параметра ReplicationRoleNone, устарел, но все еще упоминание здесь для обратной совместимости.
На боковой панели сервера в Параметры выберите "Репликация".
В верхней части страницы найдите Virtual endpoints раздел. Перейдите к трем точкам (параметрам меню) рядом с именем конечной точки, разверните ее и выберите Delete.
Появится диалоговое окно подтверждения удаления. Он предупреждает: "Это действие удаляет виртуальную конечную точку virtualendpointName. Все клиенты, подключенные с помощью этих доменов, могут потерять доступ". Подтвердите последствия и подтвердите, нажав кнопку "Удалить".
Чтобы удалить виртуальную конечную точку из гибкого сервера Azure PostgreSQL, можно использовать az postgres flexible-server virtual-endpoint delete команду. Это действие окончательно удаляет указанную виртуальную конечную точку.
В этой команде замените <resource-group><server-name>, а <virtual-endpoint-name> также на определенную группу ресурсов, имя сервера и имя виртуальной конечной точки, которую вы хотите удалить.
Чтобы удалить виртуальную конечную точку с помощью REST API Azure, вы получите HTTP DELETE запрос. URL-адрес запроса будет структурирован следующим образом:
Вы можете удалить реплика чтения, аналогичное удалению автономного База данных Azure для PostgreSQL гибкого экземпляра сервера.
На портале Azure откройте страницу Обзор реплики чтения. Выберите команду Удалить.
Кроме того, реплику можно удалить из окна Репликация, выполнив следующие действия:
В портал Azure выберите основной База данных Azure для PostgreSQL гибкий экземпляр сервера.
В меню сервера в разделе Параметры выберите "Репликация".
Выберите реплика чтения, чтобы удалить, а затем выберите многоточие. Выберите команду Удалить.
Подтвердите операцию удаления .
Чтобы удалить основной или реплика сервер, используйте az postgres flexible-server delete команду. Если сервер считывает реплика, перед удалением основного сервера необходимо сначала удалить реплика чтения.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
<server-name> Замените <resource-group> имя группы ресурсов и имя сервера реплика, которое вы хотите удалить.
Чтобы удалить основной или реплика сервер, используйте API удаления серверов. Если сервер имеет реплика чтения, перед удалением основного сервера необходимо сначала удалить реплика чтения.
После удаления всех реплика чтения можно удалить только основной сервер. Чтобы удалить реплика, следуйте инструкциям в разделе "Удаление реплика", а затем выполните указанные действия.
Чтобы удалить сервер на портале Azure, сделайте следующе:
В портал Azure выберите основной База данных Azure для PostgreSQL гибкий экземпляр сервера.
Откройте страницу обзора сервера и нажмите кнопку "Удалить".
Введите имя главного сервера, который нужно удалить. Выберите "Удалить ", чтобы подтвердить удаление основного сервера.
Чтобы удалить основной или реплика сервер, используйте az postgres flexible-server delete команду. Если сервер имеет реплика чтения, перед удалением основного сервера необходимо сначала удалить реплика чтения.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
<server-name> Замените <resource-group> имя группы ресурсов и имя сервера-источника, которое вы хотите удалить.
Чтобы удалить основной или реплика сервер, используйте API удаления серверов. Если сервер имеет реплика чтения, перед удалением основного сервера необходимо сначала удалить реплика чтения.
Выполнять мониторинг реплик чтения можно на основе двух метрик.
Максимальная задержка физической репликации
Доступно только для основного.
Метрика "Максимальная физическая репликация" показывает задержку байтов между основным сервером и наиболее заметкой реплика.
В портал Azure выберите основной сервер.
Выберите Метрики. В окне метрик выберите Max Physical Replication Lag.
Для параметра агрегирования установите значение Макс.
Метрика задержки чтения реплики
Метрика "Задержка чтения" показывает время с момента последнего воспроизведения транзакции на реплика. Если транзакции не происходят в основном, метрика отражает это время задержки. Например, если на основном сервере нет транзакций, а последняя транзакция была воспроизведена 5 секунд назад, то задержка реплики чтения показывает задержку в 5 секундах.
В портал Azure выберите реплика чтения.
Выберите Метрики. В окне метрик выберите "Задержка реплики чтения".
Для параметра агрегирования установите значение Макс.