Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как настроить аварийное восстановление для Управляемого экземпляра SQL, используя Azure Arc и CLI. Прежде чем продолжить, ознакомьтесь с информацией и предварительными требованиями в разделе о аварийном восстановлении SQL Managed Instance, включенного в 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 подключенном режиме с использованием ARM API:
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, чтобы инициировать выставление счетов за потребляемые виртуальные ядра.