Руководство по настройке группы доступности вручную — SQL Server на виртуальных машинах Azure

Область применения: SQL Server на виртуальной машине Azure

Совет

Существует множество методов развертывания группы доступности. Упрощение развертывания и устранение необходимости использования Azure Load Balancer или распределенного сетевого имени (DNN) для группы доступности AlwaysOn путем создания виртуальных машин SQL Server в нескольких подсетях в одной виртуальной сети Azure. Если вы уже создали группу доступности в одной подсети, ее можно перенести в среду с несколькими подсетами.

В этом руководстве показано, как создать группу доступности AlwaysOn для SQL Server на виртуальных машинах Azure в одной подсети. Полное руководство создает группу доступности с репликой базы данных на двух экземплярах SQL Server.

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

Оценка времени. Это руководство занимает около 30 минут после выполнения предварительных требований.

Необходимые компоненты

В этом руководстве предполагается, что у вас есть базовое представление о группах доступности SQL Server AlwaysOn. Если вы хотите узнать больше, ознакомьтесь со статьей Что такое группа доступности Always On.

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

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

Требование Description
Два экземпляра SQL Server В группе доступности Azure.
В отдельном домене.
— с установленной отказоустойчивой кластеризации
Windows Server Общая папка для свидетеля кластера
Учетная запись службы SQL Server Доменная учетная запись
Учетная запись службы агента SQL Server Доменная учетная запись
Открытые порты брандмауэра — SQL Server: 1433 для экземпляра по умолчанию
Конечная точка зеркального отображения базы данных: порт 5022 или любой доступный порт.
— Проба работоспособности IP-адресов подсистемы балансировки нагрузки для группы доступности: 59999 или любой доступный порт
— проба работоспособности IP-адресов подсистемы балансировки нагрузки для ядра кластера: 58888 или любой доступный порт
Отказоустойчивая кластеризация Требуется для обоих экземпляров SQL Server
Доменная учетная запись для установки — локальный администратор на каждом экземпляре SQL Server
— Член предопределенных ролей сервера sysadmin для каждого экземпляра SQL Server
Группы безопасности сети (NSG) Если среда использует группы безопасности сети, убедитесь, что текущая конфигурация разрешает сетевой трафик через порты, описанные в разделе "Настройка брандмауэра".

Создайте кластер.

Первая задача — создать отказоустойчивый кластер Windows Server с виртуальными машинами SQL Server и следящий сервер:

  1. Используйте протокол удаленного рабочего стола (RDP) для подключения к первой виртуальной машине SQL Server. Используйте учетную запись домена, которая является администратором как на виртуальных машинах SQL Server, так и на сервере-свидетеле.

    Совет

    В предварительных требованиях вы создали учетную запись с именем CORP\Install. Используйте ее.

  2. На панели мониторинга диспетчер сервера выберите "Сервис" и выберите диспетчер отказоустойчивости кластеров.

  3. На левой панели щелкните правой кнопкой мыши диспетчер отказоустойчивых кластеров и выберите команду "Создать кластер".

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

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

    Стр. Параметр
    Перед началом Используйте значения по умолчанию.
    Выбор серверов Введите первое имя виртуальной машины SQL Server в поле "Ввод имени сервера" и нажмите кнопку "Добавить".
    Предупреждение проверки Выберите вариант Нет. Для этого кластера не требуется поддержка корпорации Майкрософт, поэтому нет необходимости выполнять проверочные тесты. После нажатия кнопки "Далее" продолжить создание кластера.
    Точка доступа для администрирования кластера В имени кластера введите имя кластера (например, SQLAGCluster1).
    Подтверждение Используйте значения по умолчанию, если вы не используете дисковые пространства.

Установка IP-адреса отказоустойчивого кластера Windows Server

Примечание.

В Windows Server 2019 кластер создает значение распределенного имени сервера вместо значения сетевого имени кластера. Если вы используете Windows Server 2019, пропустите все действия, которые ссылаются на имя ядра кластера в этом руководстве. Вы можете создать сетевое имя кластера с помощью PowerShell. Дополнительные сведения см. в записи блога о отказоустойчивом кластере: объект сети кластера.

  1. В диспетчере отказоустойчивости кластеров прокрутите вниз до раздела Ресурсы ядра кластера и разверните сведения о кластере. Ресурсы имени и IP-адреса должны находиться в состоянии сбоя .

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

  2. Щелкните правой кнопкой мыши ресурс IP-адрес в состоянии сбоя и выберите Свойства.

    Снимок экрана: диспетчер отказоустойчивости кластеров, в котором показаны выбранные параметры для открытия свойств ДЛЯ IP-адреса.

  3. Выберите статический IP-адрес. Укажите доступный адрес из той же подсети, что и виртуальные машины.

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

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

Добавление другого экземпляра SQL Server в кластер

  1. В дереве обозревателя щелкните правой кнопкой мыши кластер и выберите Добавить узел.

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

  2. В мастере добавления узлов нажмите кнопку Далее.

  3. На странице "Выбор серверов" добавьте вторую виртуальную машину SQL Server. Введите имя виртуальной машины в поле "Ввод имени сервера" и нажмите кнопку "Добавить>далее".

  4. На странице "Предупреждение проверки" нажмите кнопку "Нет". (В рабочем сценарии необходимо выполнить тесты проверки.) Затем нажмите кнопку "Далее".

  5. На странице подтверждения, если вы используете дисковые пространства, снимите флажок "Добавить все подходящее хранилище в кластер".

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

    Предупреждение

    Если вы не снимите флажок "Добавить все подходящее хранилище в кластер", Windows отсоединяет виртуальные диски во время процесса кластеризации. В результате они не отображаются в диспетчере дисков или обозреватель объектов, пока хранилище не будет удалено из кластера и повторно подключено через PowerShell.

  6. Выберите Далее.

  7. Выберите Готово.

    Диспетчер отказоустойчивых кластеров показывает, что кластер имеет новый узел и выводит его в контейнер узлов.

  8. Завершите сеанс удаленного рабочего стола.

Добавление общей папки для кворума кластера

В этом примере кластер Windows использует общую папку для создания кворума кластера. В этом руководстве NodeAndFileShareMajority используется кворум. Дополнительные сведения см. в статье Настройка кворума и управление им.

  1. Подключитесь к виртуальной машине сервера-свидетеля общей папки с помощью сеанса удаленного рабочего стола.

  2. В диспетчер сервера выберите "Сервис". Откройте Управление компьютером.

  3. Выберите Общие папки.

  4. Щелкните правой кнопкой мыши общие папки и выберите "Создать общий ресурс".

    Снимок экрана: выбор для создания новой общей папки в службе

    Создайте общую папку с помощью мастера создания общей папки.

  5. На странице "Путь к папке" нажмите кнопку "Обзор". Найдите или создайте путь к общей папке, а затем нажмите кнопку "Далее".

  6. На странице "Имя", "Описание" и "Параметры" проверьте имя и путь к общей папке. Выберите Далее.

  7. На странице "Разрешения общей папки" задайте разрешения для настройки. Выберите Пользовательский.

  8. В диалоговом окне "Настройка разрешений" нажмите кнопку "Добавить".

  9. Убедитесь, что учетная запись, используемая для создания кластера, имеет полный контроль.

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

  10. Нажмите ОК.

  11. На странице "Разрешения общей папки" нажмите кнопку "Готово". Затем снова нажмите кнопку "Готово ".

  12. Выйдите из сервера.

Настройка кворума кластера

Примечание.

В зависимости от конфигурации группы доступности может потребоваться изменить голосование кворума узла, который участвует в отказоустойчивом кластере Windows Server. Дополнительные сведения см. в статье "Настройка кворума кластера для SQL Server на виртуальных машинах Azure".

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

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

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

  3. В мастере настройки кворума кластера нажмите кнопку "Далее".

  4. На странице "Выбор параметра конфигурации кворума" выберите "Выбрать свидетель кворума" и нажмите кнопку "Далее".

  5. На странице Выбрать свидетель кворума установите флажок Настроить файловый ресурс-свидетель.

    Совет

    Windows Server 2016 поддерживает облако-свидетель. Если выбрать этот тип свидетеля, вам не нужен следящий файловый ресурс. Дополнительные сведения см. в статье "Развертывание облачного следящего сервера для отказоустойчивого кластера". В этом руководстве используется следящий файловый ресурс, который поддерживают предыдущие операционные системы.

  6. В разделе "Настройка следящего файла" введите путь к созданной общей папке. Затем выберите Далее.

  7. На странице подтверждения проверьте параметры. Затем выберите Далее.

  8. Выберите Готово.

Теперь ресурсы ядра кластера настроены для использования файлового ресурса-свидетеля.

Включение групп доступности

Затем включите группы доступности AlwaysOn. Выполните эти действия на обеих виртуальных машинах SQL Server.

  1. На начальном экране откройте диспетчер конфигурации SQL Server.

  2. В дереве браузера выберите службы SQL Server. Затем щелкните правой кнопкой мыши службу SQL Server (MSSQLSERVER) и выберите "Свойства".

  3. Перейдите на вкладку "Высокий уровень доступности AlwaysOn" и выберите "Включить группы доступности AlwaysOn".

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

  4. Выберите Применить. Нажмите кнопку ОК во всплывающем диалоговом окне.

  5. Перезапустите службу SQL Server.

Включение функции FILESTREAM

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

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

Чтобы включить функцию FILESTREAM, выполните следующие действия.

  1. Запустите RDP-файл на первой виртуальной машине SQL Server (например, SQL-VM-1) с учетной записью домена, которая является членом предопределенной роли сервера sysadmin, например учетной записи домена CORP\Install, которую вы создали при работе с этой статьей.

  2. На начальном экране виртуальных машин SQL Server запустите диспетчер конфигурации SQL Server.

  3. В дереве обозревателя выберите Службы SQL Server, затем щелкните правой кнопкой мыши службу SQL Server (MSSQLSERVER) и выберите пункт Свойства.

  4. Перейдите на вкладку FILESTREAM, а затем установите флажок Включить доступ FILESTREAM для Transact-SQL:

  5. Выберите Применить. Нажмите кнопку ОК во всплывающем диалоговом окне.

  6. В СРЕДЕ SQL Server Management Studio выберите новый запрос, чтобы отобразить Редактор запросов.

  7. В Редактор запросов введите следующий код Transact-SQL:

    EXEC sp_configure filestream_access_level, 2
    RECONFIGURE
    
  8. Выберите Выполнить.

  9. Перезапустите службу SQL Server.

  10. Повторите эти шаги для другого экземпляра SQL Server.

Создание базы данных на первом экземпляре SQL Server

  1. Откройте RDP-файл на первой виртуальной машине SQL Server с учетной записью домена, являющейся членом предопределенных ролей сервера sysadmin .
  2. Откройте SQL Server Management Studio (SSMS) и подключитесь к первому экземпляру SQL Server.
  3. В обозревателе объектов щелкните правой кнопкой мыши Базы данных и выберите пункт Создать базу данных.
  4. В имени базы данных введите MyDB1 и нажмите кнопку "ОК".

Создание общего ресурса для резервных копий

  1. На первой виртуальной машине SQL Server в диспетчере серверов выберите Инструменты. Откройте Управление компьютером.

  2. Выберите Общие папки.

  3. Щелкните правой кнопкой мыши общие папки и выберите "Создать общий ресурс".

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

    Создайте общую папку с помощью мастера создания общей папки.

  4. На странице "Путь к папке" нажмите кнопку "Обзор". Найдите или создайте путь к общей папке резервной копии базы данных и нажмите кнопку "Далее".

  5. На странице "Имя", "Описание" и "Параметры" проверьте имя и путь к общей папке. Затем выберите Далее.

  6. На странице "Разрешения общей папки" задайте разрешения для настройки. Затем выберите "Настраиваемый".

  7. В диалоговом окне "Настройка разрешений" нажмите кнопку "Добавить".

  8. Проверьте полный контроль , чтобы предоставить полный доступ к учетной записи службы SQL Server (Corp\SQLSvc):

    Снимок экрана: диалоговое окно

  9. Нажмите ОК.

  10. На странице "Разрешения общей папки" нажмите кнопку "Готово". Выберите Готово еще раз.

Создание полной резервной копии базы данных

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

  1. В обозреватель объектов щелкните правой кнопкой мыши базу данных, наведите указатель на задачи и выберите "Создать резервную копию".

  2. Нажмите кнопку ОК, чтобы создать полную резервную копию в расположении резервных копий по умолчанию.

Создание группы доступности

Теперь вы готовы создать и настроить группу доступности, выполнив следующие задачи:

  • Создайте базу данных на первом экземпляре SQL Server.
  • Создание полной резервной копии и резервной копии журнала транзакций базы данных.
  • Восстановите полные резервные копии и резервные копии журналов во второй экземпляр SQL Server с помощью NO RECOVERY параметра.
  • Создайте группу доступности (MyTestAG) с синхронной фиксацией, автоматической отработкой отказа и читаемыми вторичными репликами.

Создание группы доступности

  1. Подключитесь к виртуальной машине SQL Server с помощью удаленного рабочего стола и откройте SQL Server Management Studio.

  2. В обозреватель объектов в SSMS щелкните правой кнопкой мыши "Высокий уровень доступности" и выберите мастер создания группы доступности.

    Снимок экрана: обозреватель объектов в SSMS с помощью команды ярлыка для запуска мастера создания группы доступности.

  3. На странице Введите выберите Далее. На странице "Параметры группы доступности" введите имя группы доступности в поле имени группы доступности. Например, введите MyTestAG. Затем выберите Далее.

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

  4. На странице Выбор баз данных выберите свою базу данных и нажмите кнопку Далее.

    Примечание.

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

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

  5. На странице Указание реплик выберите Добавить реплику.

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

  6. В диалоговом окне "Подключение к серверу" введите имя второго экземпляра SQL Server. В этом случае выберите Подключиться.

    Вернитесь на страницу "Указание реплик" , вы увидите второй сервер, указанный в разделе "Реплики доступности". Настройте реплики, как описано ниже.

    Снимок экрана: два сервера, перечисленных как реплики в мастере создания группы доступности в SSMS.

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

    Снимок экрана: вкладка

  8. На странице выбора начальной Синхронизация данных хронизации выберите "Полный" и укажите общее сетевое расположение. Это должен быть созданный вами общий ресурс для резервных копий. В этом примере был \\<First SQL Server Instance>\Backup\. Выберите Далее.

    Примечание.

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

    Это время можно сократить, вручную создав резервную копию базы данных и восстановив ее с параметром NO RECOVERY. Если база данных уже восстановлена во NO RECOVERY втором экземпляре SQL Server перед настройкой группы доступности, нажмите кнопку "Присоединиться только". Если вы хотите создать резервную копию после настройки группы доступности, выберите "Пропустить начальную синхронизацию данных".

    Снимок экрана: параметры синхронизации данных в мастере создания группы доступности в SSMS.

  9. На странице проверки нажмите кнопку "Далее". Эта страница должна выглядеть, как на рисунке ниже.

    Снимок экрана: страница с результатами проверки в мастере создания группы доступности в SSMS.

    Примечание.

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

  10. На странице "Сводка" нажмите кнопку "Готово", а затем подождите, пока мастер настраивает новую группу доступности. На странице "Ход выполнения" можно выбрать дополнительные сведения, чтобы просмотреть подробный ход выполнения.

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

    Снимок экрана: успешное завершение мастера создания группы доступности в SSMS.

  11. Нажмите кнопку Закрыть, чтобы закрыть мастер.

Проверка группы доступности

  1. В обозревателе объектов разверните узел Высокий уровень доступности AlwaysOn, а затем узел Группы доступности. Теперь в этом контейнере должна появиться новая группа доступности. Щелкните правой кнопкой мыши группу доступности и выберите Показать панель мониторинга.

    Снимок экрана: обозреватель объектов в SSMS, где показаны выборы для открытия панели мониторинга для группы доступности.

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

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

    На панели мониторинга отображаются реплики, режим отработки отказа каждой реплики и состояние синхронизации.

  2. В диспетчере отказоустойчивости кластеров выберите свой кластер. Выберите Роли.

    Имя группы доступности, которое вы использовали, является ролью в кластере. Эта группа доступности не имеет IP-адреса для клиентских подключений, так как вы не настроили прослушиватель. После создания подсистемы балансировки нагрузки Azure вы настроите прослушиватель.

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

    Предупреждение

    Не пытайтесь выполнить отработку отказа группы доступности из диспетчера отказоустойчивости кластеров. Все операции отработки отказа должны выполняться на панели мониторинга группы доступности в SSMS. Дополнительные сведения об ограничениях на использование диспетчера отказоустойчивых кластеров с группами доступности.

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

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

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

Примечание.

Развертывания групп доступности в нескольких подсетях не требуют подсистемы балансировки нагрузки. В среде с одной подсетью клиенты, использующие SQL Server 2019 CU8 и более поздних версий в Windows 2016 и более поздних версий, могут заменить прослушиватель традиционных виртуальных сетей (VNN) и Azure Load Balancer на прослушиватель распределенной сети (DNN). Если вы хотите использовать DNN, пропустите все инструкции по настройке Azure Load Balancer для группы доступности.

Для виртуальных машин Azure в одной подсети для группы доступности SQL Server требуется подсистема балансировки нагрузки. Подсистема балансировки нагрузки содержит IP-адреса для прослушивателей группы доступности и отказоустойчивого кластера Windows Server. В этом разделе кратко описывается, как создать подсистему балансировки нагрузки на портале Azure.

Подсистема балансировки нагрузки в Azure может быть стандартной или базовой. Подсистема балансировки нагрузки уровня "Стандартный" имеет больше возможностей, чем базовая подсистема балансировки нагрузки. Для группы доступности требуется стандартная подсистема балансировки нагрузки, если используется зона доступности (вместо группы доступности). Дополнительные сведения о разнице между номерами SKU см. в разделе SKU Azure Load Balancer.

Внимание

30 сентября 2025 г. базовый номер SKU для Azure Load Balancer будет прекращен. Дополнительные сведения см. в официальном объявлении. Если вы используете Базовую подсистему балансировки нагрузки, выполните обновление до Load Balancer (цен. категория до даты выхода на пенсию. Дополнительные сведения см. в статье об обновлении Load Balancer.

  1. В портал Azure перейдите в группу ресурсов, содержащую виртуальные машины SQL Server, и нажмите кнопку +Добавить.

  2. Найдите балансировщик нагрузки. Выберите подсистему балансировки нагрузки, которую публикует корпорация Майкрософт.

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

  3. Нажмите кнопку создания.

  4. На странице "Создание подсистемы балансировки нагрузки" настройте следующие параметры для подсистемы балансировки нагрузки:

    Параметр Запись или выбор
    Подписка Используйте подписку, в которой находится виртуальная машина.
    Группа ресурсов Используйте ту же группу ресурсов, что и виртуальная машина.
    Имя Используйте текстовое имя подсистемы балансировки нагрузки, например sqlLB.
    Регион Используйте тот же регион, что и виртуальная машина.
    SKU Выберите Стандартное.
    Тип Выберите Внутренний.

    Страница должна выглядеть следующим образом:

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

  5. Нажмите кнопку "Далее" — интерфейсная IP-конфигурация.

  6. Выберите + Добавить интерфейсную IP-конфигурацию.

    Снимок экрана: кнопка создания интерфейсной IP-конфигурации в портал Azure.

  7. Настройте внешний IP-адрес с помощью следующих значений:

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

    На следующем рисунке показан диалоговое окно "Добавление интерфейсной IP-конфигурации ".

    Снимок экрана: портал Azure с диалоговым окном для конфигурации внешнего IP-адреса.

  8. Выберите Добавить.

  9. Нажмите кнопку "Рецензирование и создание ", чтобы проверить конфигурацию. Затем выберите "Создать ", чтобы создать подсистему балансировки нагрузки и внешний IP-адрес.

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

Добавление серверного пула для прослушивателя группы доступности

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

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

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

  3. В поле "Имя" укажите имя внутреннего пула.

  4. Для конфигурации внутреннего пула выберите сетевой адаптер.

  5. Выберите "Добавить ", чтобы связать внутренний пул с группой доступности, содержащей виртуальные машины.

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

    Примечание.

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

  7. Выберите "Добавить", чтобы добавить виртуальные машины в внутренний пул.

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

Настройка пробы

  1. В портал Azure выберите подсистему балансировки нагрузки, выберите пробы работоспособности и нажмите кнопку +Добавить.

  2. Настройте пробу работоспособности прослушивателя, как показано ниже.

    Параметр Description Пример
    Имя Текст SQLAlwaysOnEndPointProbe
    Протокол Выберите TCP. TCP
    порт. Любой неиспользуемый порт. 59999
    Интервал Время между попытками пробы в секундах 5
  3. Выберите Добавить.

Настройка правил балансировки нагрузки

  1. В портал Azure выберите подсистему балансировки нагрузки, выберите правила балансировки нагрузки и нажмите кнопку +Добавить.

  2. Задайте правила балансировки нагрузки прослушивателя следующим образом:

    Параметр Description Пример
    Имя Текст SQLAlwaysOnEndPointListener
    Внешний IP-адрес Выберите адрес. Используйте адрес, который был создан при создании подсистемы балансировки нагрузки.
    Внутренний пул Выбор внутреннего пула Выберите внутренний пул, содержащий виртуальные машины, предназначенные для подсистемы балансировки нагрузки.
    Протокол Выберите TCP. TCP
    порт. Создайте порт для прослушивателя группы доступности 1433
    Серверный порт Это поле не используется, если для прямого возврата сервера задан плавающий IP-адрес. 1433
    Проба работоспособности Имя, указанное для пробы SQLAlwaysOnEndPointProbe
    Сохранение сеанса Раскрывающийся список Не допускается
    Время ожидания простоя Интервал (в минутах), в течение которого подключение TCP остается открытым. 4
    Плавающий IP-адрес (прямой ответ от сервера) Топология потока и схема сопоставления IP-адресов Включено

    Предупреждение

    Параметры прямого ответа от сервера задаются во время создания. Вы не можете изменить его.

  3. Выберите Сохранить.

Добавление IP-адреса ядра кластера для отказоустойчивого кластера Windows Server

IP-адрес отказоустойчивого кластера Windows Server также должен находиться в подсистеме балансировки нагрузки. Если вы используете Windows Server 2019, пропустите этот процесс, так как кластер создает значение имени распределенного сервера вместо значения имени сети кластера.

  1. На портале Azure перейдите к этой же подсистеме балансировки нагрузки Azure. Выберите конфигурацию ВНЕШНЕГО IP-адреса и нажмите кнопку +Добавить. Используйте IP-адрес, настроенный для отказоустойчивого кластера Windows Server в основных ресурсах кластера. Задайте IP-адрес как статический.

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

  3. Задайте пробу работоспособности ip-адресов ядра кластера для отказоустойчивого кластера Windows Server следующим образом:

    Параметр Description Пример
    Имя Текст WSFCEndPointProbe
    Протокол Выберите TCP. TCP
    порт. Любой неиспользуемый порт. 58888
    Интервал Время между попытками пробы в секундах 5
  4. Нажмите кнопку "Добавить ", чтобы задать пробу работоспособности.

  5. Выберите правила балансировки нагрузки и нажмите кнопку +Добавить.

  6. Задайте правила балансировки нагрузки для IP-адреса ядра кластера следующим образом:

    Параметр Description Пример
    Имя Текст WSFCEndPoint
    Внешний IP-адрес Выберите адрес. Используйте адрес, созданный при настройке IP-адреса для отказоустойчивого кластера Windows Server. Это отличается от IP-адреса прослушивателя.
    Внутренний пул Выбор внутреннего пула Выберите внутренний пул, содержащий виртуальные машины, предназначенные для подсистемы балансировки нагрузки.
    Протокол Выберите TCP. TCP
    порт. Используйте порт для IP-адреса кластера. Это доступный порт, который не используется для порта пробы прослушивателя. 58888
    Серверный порт Это поле не используется, если для прямого возврата сервера задан плавающий IP-адрес. 58888
    Проба Имя, указанное для пробы WSFCEndPointProbe
    Сохранение сеанса Раскрывающийся список Не допускается
    Время ожидания простоя Интервал (в минутах), в течение которого подключение TCP остается открытым. 4
    Плавающий IP-адрес (прямой ответ от сервера) Топология потока и схема сопоставления IP-адресов Включено

    Предупреждение

    Параметры прямого ответа от сервера задаются во время создания. Вы не можете изменить его.

  7. Нажмите ОК.

Настройка прослушивателя

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

Примечание.

В этом руководстве показано, как создать один прослушиватель с одним IP-адресом для внутренней подсистемы балансировки нагрузки. Сведения о создании прослушивателей с помощью одного или нескольких IP-адресов см. в разделе "Настройка одного или нескольких прослушивателей группы доступности AlwaysOn".

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

  1. Получите имя сетевого ресурса кластера:

    a. Подключитесь по протоколу RDP к виртуальной машине Azure, на которой размещена основная реплика.

    b. Откройте диспетчер отказоустойчивости кластеров.

    c. Выберите узел Сети и запишите имя сети кластера. Это имя нужно использовать в переменной $ClusterNetworkName в сценарии PowerShell. На следующем рисунке сетевое имя кластера — cluster Network 1:

    Снимок экрана: имя сети кластера в диспетчере отказоустойчивости кластеров.

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

    a. В диспетчере отказоустойчивости кластеров разверните имя кластера и выберите роли.

    b. В области ролей щелкните правой кнопкой мыши имя группы доступности и выберите пункт "Добавить точку доступа клиента ресурсов>".

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

    c. В поле Имя создайте имя для нового прослушивателя. Имя для нового прослушивателя — это сетевое имя, которое используют приложения для подключения к базам данных в группе доступности SQL Server.

    d. Чтобы завершить создание прослушивателя, нажмите кнопку "Далее " дважды и нажмите кнопку "Готово". Не используйте прослушиватель или ресурс в сети на этом этапе.

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

  4. Настройте IP-ресурс для группы доступности:

    a. Перейдите на вкладку "Ресурсы" и разверните созданную клиентом точку доступа. Точка доступа клиента не подключена к сети.

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

    b. Щелкните правой кнопкой мыши ресурс IP-адреса и выберите пункт "Свойства". Запишите IP-адрес и используйте его в переменной $IPResourceName в скрипте PowerShell.

    c. В разделе IP-адрес выберите статический IP-адрес. Задайте тот же IP-адрес, который использовался на портале Azure при настройке адреса подсистемы балансировки нагрузки.

    Снимок экрана: диспетчер отказоустойчивости кластеров, показывающий выбор IP-адреса.

  5. Сделайте группу доступности SQL Server зависящей от точки доступа клиента:

    a. В диспетчере отказоустойчивости кластеров выберите роли и выберите группу доступности.

    b. На вкладке "Ресурсы" в разделе "Другие ресурсы" щелкните правой кнопкой мыши ресурс группы доступности и выберите пункт "Свойства".

    c. На вкладке зависимостей добавьте имя точки доступа клиента (прослушиватель).

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

    d. Нажмите ОК.

  6. Сделайте точку доступа клиента зависящей от IP-адреса:

    a. В диспетчере отказоустойчивости кластеров выберите роли и выберите группу доступности.

    b. На вкладке "Ресурсы" щелкните правой кнопкой мыши точку доступа клиента в разделе "Имя сервера" и выберите пункт "Свойства".

    Снимок экрана: диспетчер отказоустойчивости кластеров, в котором показан параметр меню

    c. Перейдите на вкладку "Зависимости ". Убедитесь, что IP-адрес является зависимостью. Если это не так, задайте зависимость от IP-адреса. Если перечислены несколько ресурсов, убедитесь, что IP-адреса имеют ИЛИ, а не И, зависимости. Затем выберите OK.

    Снимок экрана: вкладка

    Совет

    Вы можете проверить правильность настройки зависимостей. В диспетчере отказоустойчивых кластеров перейдите к ролям, щелкните правой кнопкой мыши группу доступности, выберите "Дополнительные действия" и выберите " Показать отчет о зависимостях". Когда зависимости настроены правильно, группа доступности зависит от имени сети, которое, в свою очередь, зависит от IP-адреса.

  7. Задайте параметры кластера в PowerShell:

    a. Скопируйте следующий скрипт PowerShell на один из экземпляров SQL Server. Обновите переменные для среды.

    • $ClusterNetworkName Найдите имя в диспетчере отказоустойчивых кластеров, выбрав "Сети", щелкните сеть правой кнопкой мыши и выберите "Свойства". $ClusterNetworkName находится на вкладке "Имя" на вкладке "Общие".

    • $IPResourceName— это имя, заданное ресурсу IP-адреса в диспетчере отказоустойчивости кластеров. Это находится в диспетчере отказоустойчивых кластеров, выбрав роли, выберите имя группы доступности SQL Server или FCI, перейдите на вкладку "Ресурсы" в разделе "Имя сервера", щелкните правой кнопкой мыши ресурс IP-адреса и выберите "Свойства". Правильное значение находится на вкладке "Имя " на вкладке "Общие".

    • $ListenerILBIP — IP-адрес создан в подсистеме балансировки нагрузки Azure для прослушивателя группы доступности. Найдите $ListenerILBIP в диспетчере отказоустойчивости кластеров на той же странице свойств, что и имя ресурса прослушивателя SQL Server AG/FCI.

    • $ListenerProbePort — это порт, настроенный в подсистеме балансировки нагрузки Azure для прослушивателя группы доступности, например 59999. Допускается любой неиспользуемый TCP-порт.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<IPResourceName>" # The IP address resource name.
    $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ListenerProbePort = <nnnnn>
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Задайте параметры кластера, выполнив скрипт PowerShell на одном из узлов кластера.

    Примечание.

    Если экземпляры SQL Server находятся в разных регионах, необходимо дважды запустить сценарий PowerShell. В первый раз используйте $ListenerILBIP значения $ListenerProbePort из первого региона. Во второй раз используйте $ListenerILBIP значения $ListenerProbePort из второго региона. Имя сети кластера и имя ресурса IP-кластера разные для каждого региона.

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

При необходимости повторите описанные выше действия, чтобы задать параметры кластера для IP-адреса отказоустойчивого кластера Windows Server:

  1. Получите ИМЯ IP-адреса отказоустойчивого кластера Windows Server. В диспетчере отказоустойчивости кластеров в разделе "Ресурсы ядра кластера" найдите имя сервера.

  2. Щелкните правой кнопкой мыши IP-адрес и выберите пункт "Свойства".

  3. Скопируйте имя IP-адреса из имени. Это может быть IP-адрес кластера.

  4. Задайте параметры кластера в PowerShell:

    a. Скопируйте следующий скрипт PowerShell на один из экземпляров SQL Server. Обновите переменные для среды.

    • $ClusterCoreIP — это IP-адрес, созданный в подсистеме балансировки нагрузки Azure для основного ресурса кластера отказоустойчивого кластера Windows Server. Он отличается от IP-адреса прослушивателя группы доступности.

    • $ClusterProbePort — это порт, настроенный в подсистеме балансировки нагрузки Azure для пробы работоспособности отказоустойчивого кластера Windows Server. Это отличается от пробы прослушивателя группы доступности.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Задайте параметры кластера, выполнив скрипт PowerShell на одном из узлов кластера.

Если любой ресурс SQL настроен для использования порта от 49152 до 65536 ( динамический диапазон портов по умолчанию для TCP/IP), добавьте исключение для каждого порта. Такие ресурсы могут включать:

  • Ядро СУБД SQL Server
  • Прослушиватель группы доступности AlwaysOn
  • Проверка работоспособности экземпляра отказоустойчивого кластера
  • Конечная точка зеркального отображения базы данных
  • Ресурс IP-адреса ядра кластера

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

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Важно настроить исключение портов, если порт не используется. В противном случае команда завершится ошибкой, например "Процесс не может получить доступ к файлу, так как он используется другим процессом". Чтобы убедиться, что исключения настроены правильно, используйте следующую команду: netsh int ipv4 show excludedportrange tcp

Предупреждение

Порт для пробы работоспособности прослушивателя группы доступности должен отличаться от порта для пробы работоспособности основного IP-адреса кластера. В этих примерах порт прослушивателя равен 59999, а порт пробы работоспособности основного IP-адреса кластера — 58888. Оба порта требуют правила брандмауэра "разрешить входящий трафик".

Настройка порта прослушивателя

В SQL Server Management Studio задайте порт прослушивателя:

  1. Откройте SQL Server Management Studio и подключитесь к первичной реплике.

  2. Перейдите к прослушивателям групп>доступности>AlwaysOn с высоким уровнем доступности.

  3. Щелкните правой кнопкой мыши имя прослушивателя, созданное в диспетчере отказоустойчивых кластеров, и выберите пункт "Свойства".

  4. В поле Порт укажите номер порта для прослушивателя группы доступности. Значение по умолчанию — 1433. Нажмите ОК.

Теперь у вас есть группа доступности для SQL Server на виртуальных машинах Azure, работающих в режиме Azure Resource Manager.

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

Чтобы проверить подключение, необходимо:

  1. Используйте RDP для подключения к виртуальной машине SQL Server, которая находится в той же виртуальной сети, но не владеет репликой, например другой репликой.

  2. Для проверки подключения используйте служебную программу sqlcmd. Например, следующий скрипт устанавливает подключение sqlcmd к первичной реплике через прослушиватель с помощью проверка подлинности Windows:

    sqlcmd -S <listenerName> -E
    

    Если прослушиватель использует порт, отличный от порта по умолчанию (1433), укажите порт в строке подключения. Например, следующая команда подключается к прослушивателю через порт 1435:

    sqlcmd -S <listenerName>,1435 -E
    

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

Совет

Убедитесь, что указанный порт открыт в брандмауэре обеих виртуальных машин SQL Server. Для обоих серверов требуется правило для входящего трафика используемого TCP-порта. Дополнительные сведения см. в разделе "Добавление или изменение правил брандмауэра".