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


Настройка группы аварийного переключения для Azure SQL Управляемого экземпляра

Область применения: Управляемый экземпляр SQL Azure

В этой статье описано, как настроить группу отработки отказа для управляемого экземпляра SQL Azure с помощью портала Azure и Azure PowerShell.

Чтобы выполнить скрипт PowerShell от начала до конца для создания обоих экземпляров в группе отработки отказа, просмотрите "Добавление экземпляра в группу отработки отказа с помощью PowerShell".

Предварительные условия

Чтобы настроить группу переключения на отказ, у вас уже должны быть соответствующие разрешения и управляемый экземпляр SQL, который вы планируете использовать в качестве ведущего. Ознакомьтесь с разделом Создание экземпляра для начала.

Прежде чем создавать вторичный экземпляр и группу переключения при отказе, ознакомьтесь с ограничениями.

Требования настройки

Чтобы настроить группу отказоустойчивости между основным и вторичным управляемыми экземплярами SQL, рассмотрите следующие требования:

  • Вторичный управляемый экземпляр должен быть пустым без каких-либо пользовательских баз данных.
  • Конфигурация основного и дополнительного экземпляра должна быть одинаковой, чтобы обеспечить, чтобы вторичный экземпляр может устойчиво обрабатывать изменения, реплицированные из основного экземпляра, в том числе в периоды пиковых действий. К ним относятся размер вычислительных ресурсов, размер хранилища и уровень служб.
  • Диапазон IP-адресов для виртуальной сети первичного экземпляра не должен перекрываться с диапазоном адресов виртуальной сети для вторичного управляемого экземпляра или любой другой виртуальной сети, пиринговой с первичной или вторичной виртуальной сетью.
  • Оба экземпляра должны находиться в одной зоне DNS. При создании вторичного управляемого экземпляра необходимо указать идентификатор зоны DNS первичного экземпляра. Если это не так, идентификатор зоны создается в виде случайной строки при создании первого экземпляра в каждой виртуальной сети, а тот же идентификатор назначается всем другим экземплярам в одной подсети. После назначения зону DNS изменить нельзя.
  • Правила групп безопасности сети (NSG) для подсетей всех экземпляров должны иметь открытые входящие и исходящие TCP-подключения для порта 5022 и диапазона портов 11000–11999, чтобы обеспечить взаимодействие между двумя экземплярами.
  • Управляемые экземпляры следует развертывать в парных регионах по соображениям производительности. Управляемые экземпляры, находящиеся в геопарированных регионах, получают значительно более высокую скорость георепликации по сравнению с непарными регионами.
  • Оба экземпляра должны использовать ту же политику обновления.

Создание вторичного экземпляра

При создании вторичного экземпляра необходимо использовать виртуальную сеть с пространством IP-адресов, которое не перекрывается с диапазоном ip-адресов основного экземпляра. Кроме того, при настройке нового вторичного экземпляра необходимо указать идентификатор зоны основного экземпляра.

Вы можете настроить вторичную виртуальную сеть и создать дополнительный экземпляр с помощью портал Azure и PowerShell.

Создание виртуальной сети

Чтобы создать виртуальную сеть для вторичного экземпляра в портале Azure, выполните следующие действия.

  1. Проверьте адресное пространство для основного экземпляра. Перейдите к ресурсу виртуальной сети для основного экземпляра в портале Azure и в разделе Параметры выберите адресное пространство. Проверьте диапазон в диапазоне адресов:

    Снимок экрана адресного пространства для основной виртуальной сети в портале Azure.

  2. Создайте виртуальную сеть, которую планируется использовать для дополнительного экземпляра, перейдя на страницу "Создание виртуальной сети ".

  3. На вкладке "Основы" страницы "Создание виртуальной сети ":

    1. Выберите группу ресурсов, которую вы собираетесь использовать для дополнительного экземпляра. Создайте новый, если он еще не существует.
    2. Укажите имя виртуальной сети, например vnet-sql-mi-secondary.
    3. Выберите регион, связанный с регионом, где находится основной экземпляр.
  4. На вкладке IP-адресов страницы "Создание виртуальной сети ":

    1. Используйте Удалить адресное пространство для удаления существующего адресного пространства IPv4.
    2. После удаления адресного пространства выберите "Добавить адресное пространство IPv4", чтобы добавить новое пространство, а затем укажите пространство IP-адресов, отличное от адресного пространства, используемого виртуальной сетью первичного экземпляра. Например, если текущий основной экземпляр использует адресное пространство 10.0.0.16, введите 10.1.0.0/16 адресное пространство виртуальной сети, которую планируется использовать для вторичного экземпляра.
    3. Используйте + Добавить подсеть, чтобы добавить подсеть по умолчанию с настройками по умолчанию.
    4. Используйте + Добавить подсеть, чтобы добавить пустую подсеть, которая будет выделена вторичному экземпляру с именем ManagedInstance, с использованием диапазона адресов, отличного от подсети по умолчанию. Например, если основной экземпляр использует диапазон адресов от 10.0.0.0 до 10.0.255.255, укажите диапазон 10.1.1.0 - 10.1.1.255 подсети для подсети вторичного экземпляра.

    Снимок экрана адресного пространства для новой виртуальной сети в портале Azure.

  5. Используйте Проверка и создание, чтобы просмотреть параметры, а затем используйте Создать для создания новой виртуальной сети.

Создание вторичного экземпляра

После того как ваша виртуальная сеть готова, выполните следующие действия, чтобы создать дополнительный экземпляр в портале Azure:

  1. Перейдите в раздел Создание управляемого экземпляра SQL Azure в портале Azure.

  2. На вкладке Основы страницы Создание управляемого экземпляра SQL Azure:

    1. Выберите регион для дополнительного экземпляра, который связан с основным экземпляром.
    2. Выберите уровень обслуживания, соответствующий уровню обслуживания основного экземпляра.
  3. На вкладке "Сеть" страницы "Создание Управляемый экземпляр SQL Azure" используйте раскрывающийся список в разделе "Виртуальная сеть/ подсеть", чтобы выбрать виртуальную сеть и подсеть, которую вы ранее создали:

    Снимок экрана, выделяющий сеть, созданную для использования с вторичным экземпляром в портале Azure.

  4. На вкладке "Дополнительные параметры" страницы "Создать Управляемый экземпляр SQL Azure" выберите "Да", чтобы использовать в качестве вторичного реплики для отказоустойчивости, а затем выберите соответствующий основной экземпляр из раскрывающегося списка.

    Скриншот портала Azure, указывающий основной управляемый экземпляр в качестве вторичного экземпляра на странице дополнительных параметров отработки отказа.

  5. Настройте остальную часть экземпляра в соответствии с вашими бизнес-потребностями, а затем создайте его с помощью проверки и создания.

Установка подключения между экземплярами

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

Пиринг глобальной виртуальной сети рекомендуется как наиболее эффективный и надежный способ установить соединение между экземплярами в группе для отказоустойчивости. Пиринг глобальной виртуальной сети обеспечивает низкую задержку и высокую пропускную способность для частного подключения между сопряженными виртуальными сетями, используя магистральную инфраструктуру Microsoft. При обмене данными между пиринговыми виртуальными сетями не требуется общий доступ к Интернету, шлюзы или дополнительное шифрование.

Внимание

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

Если вы используете механизм для установления подключения между экземплярами, отличными от рекомендуемого пиринга глобальной виртуальной сети, убедитесь в следующем:

  • Сетевые устройства, такие как брандмауэры или сетевые виртуальные устройства (NVAs), не блокируют трафик на входящих и исходящих соединениях для порта 5022 (TCP) и диапазона портов 11000-11999.
  • Маршрутизация настроена правильно, а асимметричная маршрутизация исключена.
  • При развертывании групп отработки отказа в сетевой топологии концентратора и периферийной сети между регионами, чтобы избежать проблем с скоростью подключения и репликации, трафик репликации должен проходить непосредственно между двумя подсетями управляемого экземпляра, а не направляться через сети концентраторов.

В этой статье с помощью портала Azure и PowerShell вы узнаете, как настроить пиринг глобальной виртуальной сети между сетями двух экземпляров.

  1. В портале Azure перейдите на ресурс виртуальной сети для основного управляемого экземпляра.

  2. Выберите Пиринги в разделе Параметры, чтобы открыть страницу Пиринги, а затем используйте + Добавить из панели команд, чтобы открыть страницу Добавить пиринг.

    Снимок экрана страницы пиринга для виртуальной сети A в портале Azure.

  3. На странице Добавление пиринга введите или выберите значения следующих параметров:

    Настройки Описание
    Сводка по удаленной виртуальной сети
    Имя пиринговой связи Имя для пиринга должно быть уникальным в пределах виртуальной сети. Для этой статьи используется Fog-peering.
    Модель развертывания виртуальной сети Выберите Resource Manager.
    Я знаю идентификатор ресурса Этот флажок можно оставить без флажка, если вы не знаете идентификатор ресурса.
    Подписка Выберите подписку из раскрывающегося списка.
    Виртуальная сеть Выберите виртуальную сеть для вторичного экземпляра из раскрывающегося списка.
    Параметры пиринга удаленной виртуальной сети
    Разрешить "вторичной виртуальной сети" доступ к "основной виртуальной сети" Установите флажок, чтобы разрешить обмен данными между двумя сетями. Если разрешить обмен данными между виртуальными сетями, то ресурсы, подключенные к каждой из них, будут взаимодействовать между собой с той же пропускной способностью и задержкой, что и ресурсы, подключенные к одной и той же виртуальной сети. Обмен данными между ресурсами двух виртуальных сетей осуществляется по частной сети Azure.
    Разрешить "вторичной виртуальной сети" получать переадресованный трафик из первичной виртуальной сети. Вы можете либо установить, либо снять этот флажок — оба варианта подходят для этого руководства. Дополнительные сведения см. в разделе Создание пиринга.
    Разрешить шлюзу или серверу маршрутизации в "вторичной виртуальной сети" перенаправить трафик в "первичную виртуальную сеть" Вы можете либо установить, либо снять этот флажок — оба варианта подходят для этого руководства. Дополнительные сведения см. в разделе Создание пиринга.
    Включение "вторичной виртуальной сети" для использования удаленного шлюза или сервера маршрутизации основной виртуальной сети Оставьте этот флажок снятым. Дополнительные сведения о других доступных параметрах см. в разделе Создание пиринга.
    Сводка по локальной виртуальной сети
    Имя пиринговой связи Имя того же пиринга, используемого для удаленной виртуальной сети. Для этой статьи используется Fog-peering.
    Разрешить "основной виртуальной сети" получить доступ к "вторичной виртуальной сети" Установите флажок, чтобы разрешить обмен данными между двумя сетями. Если разрешить обмен данными между виртуальными сетями, то ресурсы, подключенные к каждой из них, будут взаимодействовать между собой с той же пропускной способностью и задержкой, что и ресурсы, подключенные к одной и той же виртуальной сети. Обмен данными между ресурсами двух виртуальных сетей осуществляется по частной сети Azure.
    Разрешить "основной виртуальной сети" получать переадресованный трафик из "вторичной виртуальной сети" Вы можете либо установить, либо снять этот флажок — оба варианта подходят для этого руководства. Дополнительные сведения см. в разделе Создание пиринга.
    Разрешить шлюзу или серверу маршрутизации в первичной виртуальной сети перенаправить трафик в "вторичную виртуальную сеть" Вы можете либо установить, либо снять этот флажок — оба варианта подходят для этого руководства. Дополнительные сведения см. в разделе Создание пиринга.
    Включение "основной виртуальной сети" для использования удаленного шлюза или сервера маршрутизации вторичной виртуальной сети Оставьте этот флажок снятым. Дополнительные сведения о других доступных параметрах см. в разделе Создание пиринга.
  4. Используйте Добавить, чтобы настроить пиринг с выбранной виртуальной сетью и автоматически возвратиться на страницу Пиринг, где показано, что две сети соединены.

    Снимок экрана состояния пиринга виртуальной сети на странице пиринга в портале Azure.

Настройка портов и правил NSG

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

  • Таблица маршрутизации и группы сетевой безопасности, назначенные подсетям управляемого экземпляра, не используются совместно в двух соединенных виртуальных сетях.
  • Правила группы безопасности сети (NSG) в обеих подсетях, в которых размещается каждый экземпляр, разрешает входящий и исходящий трафик к другому экземпляру через порт 5022 и диапазон портов 11000–11999.

Вы можете настроить связь портов и правила группы безопасности сети с помощью портала Azure и PowerShell.

Чтобы открыть порты группы безопасности сети (NSG) в портал Azure, выполните следующие действия.

  1. Перейдите к ресурсу группы сетевой безопасности для основного экземпляра.

  2. В разделе Параметры выберите Правила безопасности для входящего трафика. Убедитесь, что у вас уже есть правила, разрешающие трафик для порта 5022, и диапазон 11000–11999. Если вы это делаете и источник удовлетворяет вашим бизнес-потребностям, пропустите этот шаг. Если правила не существуют, или если вы хотите использовать другой источник (например, более безопасный IP-адрес), удалите существующее правило, а затем нажмите кнопку +Добавить из панели команд, чтобы открыть область правил безопасности для входящего трафика:

    Снимок экрана добавления входящих правил безопасности для группы безопасности сети в портале Azure.

  3. В области "Добавление правила безопасности для входящего трафика" введите или выберите значения для следующих параметров:

    Настройки Рекомендуемое значение Описание
    Источник IP-адреса или тег службы Фильтр для источника связи. IP-адрес является наиболее безопасным и рекомендуется для рабочих сред. Тег службы подходит для непроизводственных сред.
    Тег службы источника Если вы выбрали тег службы в качестве источника, укажите VirtualNetwork в качестве исходного тега. Теги по умолчанию — это стандартные идентификаторы, представляющие категорию IP-адресов. Тег VirtualNetwork обозначает все адресные пространства виртуальной и локальной сети.
    Исходные IP-адреса Если в качестве источника выбраны IP-адреса, укажите IP-адрес вторичного экземпляра. Укажите диапазон адресов с помощью нотации CIDR (например, 192.168.99.0/24 или 2001:1234::/64) или IP-адрес (например, 192.168.99.0 или 2001:1234::). Вы также можете указать разделенный запятыми список IP-адресов или диапазонов адресов с помощью IPv4 или IPv6.
    Диапазоны исходных портов 5022 Это указывает, через какие порты трафик будет разрешен этим правилом.
    Услуга Настраиваемый Служба указывает целевой протокол и диапазон портов для этого правила.
    Диапазоны портов назначения 5022 Это указывает, через какие порты трафик будет разрешен этим правилом. Этот порт должен соответствовать диапазону исходного порта.
    Действие Разрешить Разрешить обмен данными по указанному порту.
    Протокол Протокол tcp Определяет протокол для связи через порт.
    Приоритет 1200 Правила обрабатываются в порядке приоритета; чем ниже число, тем выше приоритет.
    Имя. allow_geodr_inbound Имя правила.
    Описание Необязательно Вы можете указать описание или оставить это поле пустым.

    Нажмите кнопку "Добавить ", чтобы сохранить параметры и добавить новое правило.

  4. Повторите эти действия, чтобы добавить еще одно правило безопасности для диапазона 11000-11999 портов под названием allow_redirect_inbound и установить для него приоритет немного выше, чем у правила 5022, например 1100.

  5. В разделе Параметры выберите Правила безопасности для исходящего трафика. Убедитесь, что у вас уже есть правила, разрешающие трафик для порта 5022, и диапазон 11000–11999. Если вы это делаете и источник удовлетворяет вашим бизнес-потребностям, пропустите этот шаг. Если правила не существуют или вы хотите использовать другой источник (например, более безопасный IP-адрес), удалите существующее правило, а затем нажмите кнопку +Добавить из панели команд, чтобы открыть панель правил безопасности для исходящего трафика.

  6. В области "Добавление правила безопасности для исходящего трафика" используйте ту же конфигурацию для порта 5022 и диапазон11000-11999, что и для входящих портов.

  7. Перейдите в группу безопасности сети для вторичного экземпляра и повторите эти действия, чтобы обе группы безопасности сети имели следующие правила:

    • Разрешить входящий трафик через порт 5022
    • Разрешить входящий трафик в диапазоне портов 11000-11999
    • Разрешить исходящий трафик через порт 5022
    • Разрешить исходящий трафик в диапазоне портов 11000-11999

Создайте группу резервирования

Создайте группу аварийного переключения для своих управляемых экземпляров, используя портал Azure или PowerShell.

Создайте группу отработки отказа для своих Управляемых экземпляров SQL, используя портал Azure.

  1. На портале Azure в меню слева выберите Azure SQL. Если Azure SQL нет в списке, выберите элемент Все службы и введите "Azure SQL" в поле поиска. (Необязательно) Выберите звезду рядом с SQL Azure, чтобы добавить ее в качестве избранного элемента в навигацию слева.

  2. Выберите главный управляемый экземпляр, который вы хотите добавить в группу для аварийного переключения.

  3. В разделе Управление данными выберите группы переключения при отказе и затем используйте Add group, чтобы открыть страницу группы переключения экземпляра при отказе:

    Снимок экрана: добавление страницы группы аварийного переключения в портале Azure.

  4. На странице группы отработки отказа экземпляра:

    1. Первичный управляемый экземпляр предварительно выбран.
    2. В разделе Имя группы отработки отказа введите имя группы отработки отказа.
    3. В разделе «Вторичный управляемый экземпляр» выберите управляемый экземпляр, который вы хотите использовать в качестве вторичного в группе отказоустойчивости.
    4. Выберите политику отказоустойчивости для операций чтения и записи из выпадающего списка. Ручное управление рекомендуется, чтобы вы могли контролировать процесс отработки отказа.
    5. Оставьте права на отработку отказа в состоянии выключено, если вы не собираетесь использовать эту реплику исключительно для аварийного восстановления.
    6. Используйте Создать, чтобы сохранить параметры и создать группу отработки отказа.

    Снимок экрана: создание группы отработки отказа в портале Azure.

  5. После запуска развертывания группы отработки отказа вы вернетесь на страницу групп отработки отказа. Страница обновляется, чтобы отобразить новую группу аварийного переключения после завершения развертывания.

Тестовая отработка отказа

Проверьте переключение группы переключения при отказе с помощью портала Azure или PowerShell.

Протестируйте отказоустойчивость вашей группы резервирования через портал Azure.

  1. Перейдите к первичному или вторичному управляемому экземпляру в портале Azure.

  2. В разделе Управление данными выберите Резервные группы.

  3. На панели групп отказоустойчивости обратите внимание на то, какой экземпляр является основным, а какой - вторичным.

  4. В области групп аварийного переключения выберите Аварийное переключение на командной панели. Выберите "Да " в предупреждении об отключении сеансов TDS и обратите внимание на последствия лицензирования.

    Снимок экрана: переключение группы автоматического переключения в портале Azure.

  5. На панели групп отработки отказа, после успешного переключения, экземпляры меняются ролями так, чтобы предыдущее вторичное стало новым первичным, а предыдущее первичное становится новым вторичным.

    Внимание

    Если роли не переключились, проверьте подключение между экземплярами и связанными правилами NSG и брандмауэра. Перейдите к следующему шагу только после переключения ролей.

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

Отслеживание переключения при отказе в журнале активности

Журнал действий в портале Azure можно использовать для отслеживания состояния операции переключения на резерв. Для этого выполните следующие действия.

  1. Перейдите к управляемому экземпляру SQL в портале Azure.

  2. Выберите журнал действий , чтобы открыть область журнала действий .

  3. Удалите все фильтры для ресурса.

  4. Искать операции с именем Failover Azure SQL Database failover group:

    Снимок экрана журнала активности для управляемого экземпляра SQL на портале Azure, где выделена функция отработки отказа.

Изменить существующую группу переключения

Можно изменить существующую группу аварийного переключения, например, изменить политику аварийного переключения с помощью портала Azure, PowerShell, Azure CLI и REST API.

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

  1. Перейдите к управляемому экземпляру SQL в портале Azure.

  2. В разделе "Управление данными" выберите группы аварийного переключения, чтобы открыть панель групп аварийного переключения.

  3. На панели группы переключения при сбое выберите "Редактировать конфигурации" на командной панели, чтобы открыть панель "Изменить группу переключения при сбое":

    Скриншот панели группы отказоустойчивости в портале Azure с выделенной областью

Определение конечной точки прослушивателя

После настройки группы отработки отказа обновите строку подключения для вашего приложения, чтобы она указывала на конечную точку слушателя чтения/записи, чтобы приложение продолжало подключаться к основному экземпляру в случае сбоя. Используя конечную точку прослушивателя, вам не нужно вручную обновлять строку подключения каждый раз при отработке отказа, так как трафик всегда направляется на текущий основной. Вы также можете направить рабочую нагрузку с доступом только для чтения к конечной точке прослушивателя для чтения.

Внимание

При подключении к экземпляру в группе аварийного перемещения с помощью строки подключения конкретного экземпляра поддерживается, но настоятельно не рекомендуется. Вместо этого используйте конечные точки прослушивателя.

Чтобы найти конечную точку прослушивателя в портале Azure, перейдите к управляемому экземпляру SQL и в разделе Управление данными выберите группы отказоустойчивости.

Прокрутите вниз, чтобы найти конечные точки прослушивателя:

  • Конечная точка слушателя чтения и записи маршрутизации в виде fog-name.dns-zone.database.windows.net направляет трафик к основному экземпляру.
  • Конечная точка прослушивателя только для чтения в виде fog-name.secondary.dns-zone.database.windows.net, направляет трафик во вторичный экземпляр.

Снимок экрана, где можно найти строку подключения группы переключения при отказе в портале Azure.

Создание группы обеспечения отказоустойчивости между экземплярами в разных подписках

Вы можете создать группу отработки отказа между управляемыми экземплярами SQL в двух разных подписках, если подписки связаны с тем же арендатором Microsoft Entra.

  • При использовании API PowerShell можно сделать это, указав параметр PartnerSubscriptionId для вторичного управляемого экземпляра SQL.
  • При использовании REST API каждый идентификатор экземпляра, входящий в параметр properties.managedInstancePairs, может иметь собственный идентификатор подписки.
  • портал Azure не поддерживает создание групп автоматического переключения в разных подписках.

Внимание

Создание группы отработки отказа между двумя экземплярами в разных группах ресурсов или подписках поддерживается только с использованием Azure PowerShell или REST API, а не через портал Azure или через Azure CLI.

Предотвращение потери критически важных данных

Из-за высокой задержки в глобальных сетях георепликация использует механизм асинхронной репликации. Асинхронная репликация делает неизбежной возможность потери данных при отказе первичной реплики. Чтобы защитить эти критические транзакции от потери данных, разработчик приложения может вызвать хранимую процедуру sp_wait_for_database_copy_sync сразу же после фиксации транзакции. Вызов sp_wait_for_database_copy_sync блокирует вызывающий поток до тех пор, пока последняя зафиксированная транзакция не будет передана и зафиксирована в журнале транзакций вторичной базы данных. Однако он не ожидает повторного применения (воспроизведения) передаваемых транзакций на вторичной системе. Областью действия процедуры sp_wait_for_database_copy_sync является определенная связь георепликации. Эту процедуру может вызвать любой пользователь с правами подключения к базе данных-источнику.

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

Примечание.

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

Изменение дополнительного региона

Предположим, что экземпляр A является первичным экземпляром, экземпляр B является существующим вторичным экземпляром, а экземпляр C — новым вторичным экземпляром в третьем регионе. Чтобы выполнить переход, выполните следующие действия.

  1. Создайте экземпляр C с тем же размером, что и A в той же зоне DNS.
  2. Удалите группу отработки отказа между экземплярами A и B. На этом этапе попытки входа начинаются сбоем, так как псевдонимы SQL для прослушивателей группы отработки отказа были удалены, и шлюз не распознает имя группы отработки отказа. Вторичные базы данных отключаются от первичных и становятся доступными для чтения и записи.
  3. Создайте группу аварийного переключения с тем же именем между экземплярами A и C. Следуйте инструкциям в руководстве по настройке группы аварийного переключения. Это операция, связанная с объемом данных, и завершается, когда все базы данных из экземпляра A инициализированы и синхронизированы.
  4. Удалите экземпляр B, если не требуется избежать ненужных расходов.

Примечание.

После выполнения шага 2 и до завершения шага 3 базы данных в экземпляре A останутся незащищенными от катастрофического сбоя экземпляра A.

Изменение основного региона

Предположим, что экземпляр A является первичным экземпляром, экземпляр B является существующим вторичным экземпляром, а экземпляр C — новым первичным экземпляром в третьем регионе. Чтобы выполнить переход, выполните следующие действия.

  1. Создайте экземпляр C с тем же размером, что и B в той же зоне DNS.
  2. Инициируйте ручное переключение экземпляра B, чтобы сделать его новым основным. Экземпляр A автоматически становится новым вторичным экземпляром.
  3. Удалите группу отказоустойчивости между экземплярами A и B. На этом этапе попытки входа с использованием конечных точек группы отказоустойчивости начинают терпеть неудачу. Базы данных-получатели А отключены от первичных и становятся базами данных с возможностью чтения и записи.
  4. Создайте группу отказоустойчивости с одинаковым именем между экземплярами B и C. Это операция, зависящая от объема данных, и завершается, когда все базы данных из экземпляра B инициализированы и синхронизированы с экземпляром C. На этом этапе попытки входа перестают завершаться неудачно.
  5. Вручную выполните переключение экземпляра C на основную роль. Экземпляр B автоматически становится новым вторичным экземпляром.
  6. Удалите экземпляр A, если не требуется избежать ненужных расходов.

Внимание

После завершения шага 3 и до завершения шага 4 базы данных в экземпляре A останутся незащищенными от катастрофического сбоя экземпляра A.

Внимание

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

Изменение политики обновления

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

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

Внимание

После изменения обновленной политики на более высокую версию SQL Server, включая Always-up-to-date, изменить ее обратно на более низкую политику обновления версий больше не удастся.

Включение сценариев, зависящих от объектов из системных баз данных

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

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

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

Дополнительные сведения см. в статье Репликация имен входа и заданий агента.

Синхронизация свойств экземпляра и политик хранения

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

Масштабирование инстансов

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

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

Чтобы избежать проблем с более низким уровнем служб или недостаточно ресурсоемким гео-вторичным получением перегрузки или повторной обработкой во время обновления или понижения, рассмотрите следующее:

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

При попытке масштабирования уровня служб, виртуальных ядер и хранилища одновременно (например, масштабирование виртуальных ядер и уровня служб при масштабировании хранилища) не изменяйте все три одновременно. Вместо этого используйте один из следующих подходов:

  • Вариант 1. Сначала масштабируйте уровень служб (сохраняйте хранилище и виртуальные ядра одинаково), выполнив описанный выше порядок обновления или понижения. Затем масштабируйте хранилище и виртуальные ядра отдельно.
  • Вариант 2. Сначала масштабируйте хранилище (сохраняйте уровень служб и виртуальные ядра одинаково), после описанного выше порядка обновления или понижения. Затем масштабируйте уровень служб и виртуальные ядра отдельно.

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

Разрешения

Управление разрешениями для группы резервирования осуществляется через управление доступом на основе ролей Azure (Azure RBAC).

Роль участника SQL Управляемого экземпляра, ограниченная группами ресурсов основного и вторичного управляемого экземпляра, достаточна для выполнения всех операций управления в группах аварийного переключения.

В следующей таблице представлено подробное представление минимально необходимых разрешений и их соответствующих минимально необходимых уровней области для операций управления с группами переключения на резерв.

Операция управления Разрешение Область применения
Создание и обновление группы резервирования Microsoft.Sql/locations/instanceFailoverGroups/write Группы ресурсов первичного и вторичного управляемого экземпляра
Создание и обновление группы резервирования Microsoft.Sql/managedInstances/write Первичный и вторичный управляемый экземпляр
Группа резервного копирования Microsoft.Sql/locations/instanceFailoverGroups/failover/action Группы ресурсов первичного и вторичного управляемого экземпляра
Принудительная отработка отказа группы отказоустойчивости Microsoft.Sql/locations/instanceFailoverGroups/forceFailoverAllowDataLoss/action Группы ресурсов первичного и вторичного управляемого экземпляра
Удаление группы переключения Microsoft.Sql/locations/instanceFailoverGroups/delete Группы ресурсов первичного и вторичного управляемого экземпляра

Ограничения

При создании новой группы отказоустойчивости рассмотрите следующие ограничения:

  • Группы отказоустойчивости не могут быть созданы между двумя экземплярами в одном регионе Azure.
  • Экземпляр может участвовать только в одной группе аварийного переключения в любой конкретный момент.
  • Нельзя создать группу аварийного переключения между двумя экземплярами, принадлежащими разным арендаторам Azure.
  • Создание группы отработки отказа между двумя экземплярами в разных группах ресурсов или подписках поддерживается только с использованием Azure PowerShell или REST API, а не через портал Azure или через Azure CLI. После создания группы резервирования она отображается в портале Azure, а все операции поддерживаются в портале Azure или в Azure CLI.
  • Если инициализация всех баз данных не завершается в течение 7 дней, создание группы резервного переключения становится неудачным, а все успешно реплицированные базы данных удаляются из вторичной копии.
  • Создание группы аварийного переключения с экземпляром, настроенным через ссылку управляемого экземпляра, в настоящее время не поддерживается.
  • Нельзя создавать группы аварийного восстановления между экземплярами, если любой из них находится в пуле экземпляров.
  • Базы данных, перенесенные в Управляемый экземпляр SQL Azure с помощью службы воспроизведения журналов (LRS), не могут быть добавлены в группу отработки отказа, пока не будет выполнен переходный шаг.

При использовании групп автоматического переключения рассмотрите следующие ограничения:

  • Невозможно переименовать группы аварийного переключения. Вам нужно будет удалить группу и создать ее повторно с другим именем.
  • Группа отказоустойчивости содержит ровно два управляемых экземпляра. Добавление дополнительных экземпляров в группу аварийного переключения не поддерживается.
  • Полные резервные копии автоматически создаются:
    • перед начальной загрузкой данных и может заметно отложить начало процесса начальной загрузки.
    • после переключения на резервный узел и может отложить или предотвратить последующее переключение.
  • Переименование базы данных не поддерживается для баз данных в группе автоматического переключения. Чтобы переименовать базу данных, необходимо временно удалить группу резервного копирования (отработки отказа).
  • Системные базы данных не реплицируются на вторичный экземпляр в группе переключения при отказе. Таким образом, сценарии, зависящие от объектов системных баз данных, например, имени для входа на сервер и заданий агента, нуждаются в создании объектов вручную в дополнительных экземплярах, а также в ручной синхронизации после внесения любых изменений в основной экземпляр. Единственным исключением является ключ главного службы (SMK) для управляемого экземпляра SQL, который автоматически реплицируется во вторичный экземпляр во время создания группы отработки отказа. Однако любые последующие изменения SMK на основном экземпляре не будут реплицированы в дополнительный экземпляр. Для получения дополнительных сведений см. статью Включение сценариев, зависящих от объектов из системных баз данных.
  • При добавлении новых баз данных в группу автоматического переключения запланированное переключение недоступно до тех пор, пока новая база данных не будет применена к вторичной реплике и синхронизирована. Принудительный отказ по-прежнему доступен во время этого процесса.
  • Для масштабирования экземпляров внутри группы отработки отказа просмотрите Масштабирование экземпляров в группе отработки отказа.
  • Управляемые экземпляры SQL в группе отработки отказа должны иметь ту же политику обновления, хотя можно изменить политику обновления для экземпляров в группе отработки отказа.

Программное управление группами переключения при отказе

Группами аварийного переключения также можно управлять программным способом с помощью Azure PowerShell, Azure CLI и REST API. В приведенных ниже таблицах описан доступный для этого набор команд. Группы аварийного восстановления включают набор API Azure Resource Manager для управления, включая REST API Azure SQL Database и командлеты Azure PowerShell. Для этих API требуется использование групп ресурсов и поддержка управления доступом на основе ролей в Azure (Azure RBAC). Дополнительные сведения о том, как реализовать контроль доступа на основе ролей, см. в статье Управление доступом на основе ролей (Azure RBAC).

Командлет Описание
New-AzSqlDatabaseInstanceFailoverGroup Эта команда создает группу резервирования и регистрирует ее на основном и вторичном экземплярах.
Set-AzSqlDatabaseInstanceFailoverGroup Изменяет конфигурацию отказоустойчивого кластера
Get-AzSqlDatabaseInstanceFailoverGroup Извлекает конфигурацию группы для переключения при сбое
Switch-AzSqlDatabaseInstanceFailoverGroup Запускает переключение группы отказоустойчивости на вторичный экземпляр
Remove-AzSqlDatabaseInstanceFailoverGroup Удаляет группу отработки отказа.