Настройка группы отработки отказа — CLI
В этой статье объясняется, как настроить аварийное восстановление для Управляемый экземпляр SQL, включенных Azure Arc с помощью ИНТЕРФЕЙСА командной строки. Прежде чем продолжить, просмотрите сведения и предварительные требования в Управляемый экземпляр SQL, включенных Azure Arc — аварийное восстановление.
Необходимые компоненты
Перед настройкой групп отработки отказа между двумя экземплярами Управляемый экземпляр SQL включено Azure Arc, необходимо выполнить следующие предварительные требования:
- Контроллер данных Azure Arc и управляемый экземпляр SQL с поддержкой Arc, подготовленный на первичном сайте как
--license-type
один изBasePrice
илиLicenseIncluded
. - Контроллер данных Azure Arc и управляемый экземпляр SQL с поддержкой Arc, подготовленный на вторичном сайте с идентичной конфигурацией, как основной с точки зрения:
- ЦП
- Память
- Хранилище
- Уровень служб
- Параметры сортировки
- Другие параметры экземпляра
- Экземпляр на вторичном сайте требуется
--license-type
какDisasterRecovery
. Этот экземпляр должен быть новым, без каких-либо пользовательских объектов.
Примечание.
- Важно указать
--license-type
во время создания управляемого экземпляра. Это позволит экземпляру аварийного восстановления заполняться из первичного экземпляра в основном центре обработки данных. Обновление этого свойства после развертывания не будет иметь такого же эффекта.
Процесс развертывания
Чтобы настроить группу отработки отказа Azure между двумя экземплярами, выполните следующие действия.
- Создание настраиваемого ресурса для распределенной группы доступности на основном сайте
- Создание настраиваемого ресурса для распределенной группы доступности на дополнительном сайте
- Копирование двоичных данных из сертификатов зеркального отображения
- Настройка распределенной группы доступности между основными и вторичными сайтами в
sync
режиме илиasync
режиме
На следующем рисунке показана правильно настроенная распределенная группа доступности:
Режимы синхронизации
Группы отработки отказа в службах данных Azure Arc поддерживают два режима синхронизации — sync
и async
. Режим синхронизации напрямую влияет на синхронизацию данных между экземплярами и, возможно, производительность основного управляемого экземпляра.
Если первичные и вторичные сайты находятся в пределах нескольких миль друг от друга, используйте sync
режим. В противном случае используйте async
режим, чтобы избежать влияния производительности на основной сайт.
Настройка группы отработки отказа Azure — прямой режим
Выполните приведенные ниже действия, если службы данных Azure Arc развертываются в directly
подключенном режиме.
После выполнения предварительных требований выполните следующую команду, чтобы настроить группу отработки отказа Azure между двумя экземплярами:
az sql instance-failover-group-arc create --name <name of failover group> --mi <primary SQL MI> --partner-mi <Partner MI> --resource-group <name of RG> --partner-resource-group <name of partner MI RG>
Пример:
az sql instance-failover-group-arc create --name sql-fog --mi sql1 --partner-mi sql2 --resource-group rg-name --partner-resource-group rg-name
Вышеприведенная команда:
- Создает необходимые пользовательские ресурсы как на первичных, так и на вторичных сайтах
- Копирует сертификаты зеркального отображения и настраивает группу отработки отказа между экземплярами.
Настройка группы отработки отказа Azure — косвенный режим
Выполните приведенные ниже действия, если службы данных Azure Arc развертываются в indirectly
подключенном режиме.
Подготовьте управляемый экземпляр на основном сайте.
az sql mi-arc create --name <primaryinstance> --tier bc --replicas 3 --k8s-namespace <namespace> --use-k8s
Переключите контекст на дополнительный кластер, запустив
kubectl config use-context <secondarycluster>
и подготовив управляемый экземпляр на вторичном сайте, который будет экземпляром аварийного восстановления. На этом этапе системные базы данных не являются частью автономной группы доступности.Примечание.
Важно указать
--license-type DisasterRecovery
во время управляемого экземпляра. Это позволит экземпляру аварийного восстановления заполняться из первичного экземпляра в основном центре обработки данных. Обновление этого свойства после развертывания не будет иметь такого же эффекта.az sql mi-arc create --name <secondaryinstance> --tier bc --replicas 3 --license-type DisasterRecovery --k8s-namespace <namespace> --use-k8s
Сертификаты зеркального отображения — двоичные данные в свойстве сертификата зеркального отображения управляемого экземпляра необходимы для создания группы отказоустойчивости экземпляров CR (настраиваемый ресурс).
Это можно сделать несколькими способами:
(a) При использовании
az
интерфейса командной строки сначала создайте файл сертификата зеркального отображения, а затем наведите указатель на этот файл при настройке группы отработки отказа экземпляра, чтобы двоичные данные считывались из файла и копировались в CR. Файлы сертификата не требуются после создания группы отработки отказа.(b) При использовании
kubectl
напрямую скопируйте и вставьте двоичные данные из управляемого экземпляра CR в yaml-файл, который будет использоваться для создания группы отработки отказа экземпляра.Использование (a) выше:
Создайте файл сертификата зеркального отображения для основного экземпляра:
az sql mi-arc get-mirroring-cert --name <primaryinstance> --cert-file </path/name>.pem --k8s-namespace <namespace> --use-k8s
Пример:
az sql mi-arc get-mirroring-cert --name sqlprimary --cert-file $HOME/sqlcerts/sqlprimary.pem --k8s-namespace my-namespace --use-k8s
Подключитесь к вторичному кластеру и создайте файл сертификата зеркального отображения для дополнительного экземпляра:
az sql mi-arc get-mirroring-cert --name <secondaryinstance> --cert-file </path/name>.pem --k8s-namespace <namespace> --use-k8s
Пример:
az sql mi-arc get-mirroring-cert --name sqlsecondary --cert-file $HOME/sqlcerts/sqlsecondary.pem --k8s-namespace my-namespace --use-k8s
После создания файлов сертификатов зеркального отображения скопируйте сертификат из вторичного экземпляра в общий или локальный путь к кластеру основного экземпляра и наоборот.
Создайте ресурс группы отработки отказа на обоих сайтах.
Примечание.
Убедитесь, что экземпляры SQL имеют разные имена для первичных и вторичных сайтов, а
shared-name
значение должно совпадать на обоих сайтах.az sql instance-failover-group-arc create --shared-name <name of failover group> --name <name for primary failover group resource> --mi <local SQL managed instance name> --role primary --partner-mi <partner SQL managed instance name> --partner-mirroring-url tcp://<secondary IP> --partner-mirroring-cert-file <secondary.pem> --k8s-namespace <namespace> --use-k8s
Пример:
az sql instance-failover-group-arc create --shared-name myfog --name primarycr --mi sqlinstance1 --role primary --partner-mi sqlinstance2 --partner-mirroring-url tcp://10.20.5.20:970 --partner-mirroring-cert-file $HOME/sqlcerts/sqlinstance2.pem --k8s-namespace my-namespace --use-k8s
В дополнительном экземпляре выполните следующую команду, чтобы настроить пользовательский ресурс группы отработки отказа. В
--partner-mirroring-cert-file
этом случае следует указать путь, содержащий файл сертификата зеркального отображения, созданный из первичного экземпляра, как описано выше в 3(a).az sql instance-failover-group-arc create --shared-name <name of failover group> --name <name for secondary failover group resource> --mi <local SQL managed instance name> --role secondary --partner-mi <partner SQL managed instance name> --partner-mirroring-url tcp://<primary IP> --partner-mirroring-cert-file <primary.pem> --k8s-namespace <namespace> --use-k8s
Пример:
az sql instance-failover-group-arc create --shared-name myfog --name secondarycr --mi sqlinstance2 --role secondary --partner-mi sqlinstance1 --partner-mirroring-url tcp://10.10.5.20:970 --partner-mirroring-cert-file $HOME/sqlcerts/sqlinstance1.pem --k8s-namespace my-namespace --use-k8s
Получение состояния работоспособности группы отработки отказа Azure
Сведения о группе отработки отказа, такой как первичная роль, вторичная роль и текущее состояние работоспособности, можно просмотреть на пользовательском ресурсе на первичном или вторичном сайте.
Выполните следующую команду на первичном и/или вторичном сайте, чтобы перечислить настраиваемый ресурс групп отработки отказа:
kubectl get fog -n <namespace>
Опишите пользовательский ресурс для получения состояния группы отработки отказа следующим образом:
kubectl describe fog <failover group cr name> -n <namespace>
Операции группы отработки отказа
После настройки группы отработки отказа между управляемыми экземплярами различные операции отработки отказа могут выполняться в зависимости от обстоятельств.
Возможные сценарии отработки отказа:
Экземпляры на обоих сайтах находятся в работоспособном состоянии, и необходимо выполнить отработку отказа:
- выполните отработку отказа вручную из первичного в вторичный без потери данных, установив
role=secondary
на первичном экземпляре SQL MI.
- выполните отработку отказа вручную из первичного в вторичный без потери данных, установив
Первичный сайт неработоспособен или недоступен, и необходимо выполнить отработку отказа:
- основной Управляемый экземпляр SQL, включенной Azure Arc, неработоспособен или недоступен
- дополнительный Управляемый экземпляр SQL, включенный Azure Arc, должен быть принудительно повышен до первичного с потенциальной потерей данных
- Когда исходная первичная Управляемый экземпляр SQL, включенная Azure Arc, возвращается в режим "онлайн", она будет сообщать о
Primary
состоянии роли и неработоспособном состоянии и должна быть принудительно включенаsecondary
в роль, чтобы присоединиться к группе отработки отказа и данным можно синхронизировать.
Отработка отказа вручную (без потери данных)
Используйте az sql instance-failover-group-arc update ...
группу команд, чтобы инициировать отработку отказа с первичного на вторичную. Все ожидающие транзакции в географически основном экземпляре реплицируются в географически дополнительный экземпляр до отработки отказа.
Режим прямого подключения
Выполните следующую команду, чтобы инициировать отработку отказа вручную в direct
подключенном режиме с помощью API ARM:
az sql instance-failover-group-arc update --name <shared name of failover group> --mi <primary instance> --role secondary --resource-group <resource group>
Пример:
az sql instance-failover-group-arc update --name myfog --mi sqlmi1 --role secondary --resource-group myresourcegroup
Косвенно подключенный режим
Выполните следующую команду, чтобы инициировать отработку отказа вручную в indirect
подключенном режиме с помощью API kubernetes:
az sql instance-failover-group-arc update --name <name of failover group resource> --role secondary --k8s-namespace <namespace> --use-k8s
Пример:
az sql instance-failover-group-arc update --name myfog --role secondary --k8s-namespace my-namespace --use-k8s
Принудительная отработка отказа с потерей данных
В случаях, когда географически основной экземпляр становится недоступным, следующие команды можно выполнять на географически дополнительном экземпляре аварийного восстановления, чтобы повысить уровень до основного с принудительной отработкой отказа, что приводит к потенциальной потере данных.
На географически дополнительном экземпляре аварийного восстановления выполните следующую команду, чтобы повысить уровень до основного с потерей данных.
Примечание.
--partner-sync-mode
Если он был настроен какsync
, его необходимо сбросить до async
того, когда вторичный будет повышен до первичного.
Режим прямого подключения
az sql instance-failover-group-arc update --name <shared name of failover group> --mi <instance> --role force-primary-allow-data-loss --resource-group <resource group> --partner-sync-mode async
Пример:
az sql instance-failover-group-arc update --name myfog --mi sqlmi2 --role force-primary-allow-data-loss --resource-group myresourcegroup --partner-sync-mode async
Косвенно подключенный режим
az sql instance-failover-group-arc update --k8s-namespace my-namespace --name secondarycr --use-k8s --role force-primary-allow-data-loss --partner-sync-mode async
Когда гео-первичный экземпляр становится доступным, выполните следующую команду, чтобы перенести ее в группу отработки отказа и синхронизировать данные:
Режим прямого подключения
az sql instance-failover-group-arc update --name <shared name of failover group> --mi <old primary instance> --role force-secondary --resource-group <resource group>
Косвенно подключенный режим
az sql instance-failover-group-arc update --k8s-namespace my-namespace --name secondarycr --use-k8s --role force-secondary
--partner-sync-mode
При необходимости можно настроить обратно в sync
режим.
Операции после отработки отказа
После выполнения отработки отказа с первичного сайта на дополнительный сайт( с потерей данных или без нее) может потребоваться выполнить следующее:
- Обновите строка подключения для приложений, чтобы подключиться к недавно созданному управляемому экземпляру Arc SQL
- Если вы планируете продолжить выполнение рабочей нагрузки вне вторичного сайта, обновите
--license-type
его доBasePrice
илиLicenseIncluded
для запуска выставления счетов для используемых виртуальных ядер.