Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server на виртуальной машине Azure
Совет
Существует множество методов развертывания группы доступности. Упрощение развертывания и устранение необходимости использования Azure Load Balancer или распределенного сетевого имени (DNN) для группы доступности AlwaysOn путем создания виртуальных машин SQL Server в нескольких подсетях в одной виртуальной сети Azure. Если вы уже создали группу доступности в одной подсети, ее можно перенести в среду с несколькими подсетами.
В этом учебнике показано, как создать группу доступности Always On в нескольких подсетях для SQL Server на виртуальных машинах Azure. В полном учебнике описывается, как создать отказоустойчивый кластер Windows Server и группу доступности с двумя репликами и прослушивателем SQL Server.
Оценка времени. Если необходимые компоненты доступны, на работу с этим учебником потребуется около 30 минут.
Необходимые компоненты
В следующей таблице приведены необходимые компоненты, которые требуется подготовить перед началом работы с этим учебником:
Требование | Description |
---|---|
![]() |
— Каждая виртуальная машина в двух разных зонах доступности Azure или одной группе доступности — В отдельных подсетях в azure виртуальная сеть — с двумя дополнительными IP-адресами, назначенными каждой виртуальной машине — в одном домене |
![]() |
Учетная запись домена, используемая службой SQL Server для каждого компьютера |
![]() |
— SQL Server: 1433 для экземпляра по умолчанию — конечная точка зеркального отображения базы данных: 5022 или любой доступный порт |
![]() |
— Локальный администратор на каждом СЕРВЕРе SQL Server Участник фиксированной роли сервера SQL Server sysadmin для каждого экземпляра SQL Server. |
К этому учебнику стоит приступать, если у вас есть хотя бы базовое представление о группах доступности Always On для SQL Server.
Создайте кластер.
Группа доступности Always On располагается поверх инфраструктуры отказоустойчивого кластера Windows Server. Поэтому перед развертыванием группы доступности необходимо сначала настроить отказоустойчивый кластер Windows Server: добавить компонент, создать кластер и настроить IP-адрес кластера.
Добавление компонента отказоустойчивого кластера
Добавьте компонент отказоустойчивого кластера на обеих виртуальных машинах SQL Server. Для этого выполните следующие шаги:
Подключитесь к виртуальной машине SQL Server с помощью протокола удаленного рабочего стола, используя учетную запись домена с разрешениями на создание объектов в AD, например учетную запись домена CORP\Install, которую вы создали при работе с этой статьей.
Откройте панель мониторинга диспетчера сервера.
Щелкните ссылку Добавление ролей и компонентов на панели мониторинга.
Нажимайте кнопку Далее, пока не откроется раздел Server Features (Функции сервера).
В разделе функций выберите Отказоустойчивость кластеров.
Добавьте другие необходимые функции.
Щелкните Установить, чтобы добавить функции.
Повторите эти действия на другой виртуальной машине SQL Server.
Создание кластера
После добавления компонента кластера на каждую виртуальную машину SQL Server вы будете готовы к созданию отказоустойчивого кластера Windows Server.
Чтобы создать кластер, сделайте следующее:
Подключитесь к первой виртуальной машине SQL Server (например, SQL-VM-1) с помощью протокола удаленного рабочего стола, используя учетную запись домена с разрешениями на создание объектов в AD, например учетную запись домена CORP\Install, которую вы создали при работе с этой статьей.
На панели мониторинга Диспетчер сервера выберите Инструменты и Диспетчер отказоустойчивости кластеров.
В левой области щелкните правой кнопкой мыши Диспетчер отказоустойчивости кластеров и выберите Создать кластер.
В мастере создания кластеров создайте кластер с двумя узлами, поэтапно настроив параметры на всех страницах, как указано в таблице ниже:
Стр. Настройки Перед началом Используйте значения по умолчанию. Выбор серверов Введите имя первого SQL Server (например, SQL-VM-1) в поле Введите имя сервера и выберите Добавить.
Введите имя второго SQL Server (например, SQL-VM-2) в поле Введите имя сервера и выберите Добавить.Предупреждение проверки Нажмите Да. После нажатия кнопки "Далее" выполнить проверочные тесты конфигурации, а затем вернуться к процессу создания кластера. Перед началом работы Выберите Далее. Параметры тестирования Выберите Выполнить только выбранные мной тесты. Выбор теста Снимите флажок для службы хранилища. Убедитесь, что установлены флажки Данные инвентаризации, Сеть и Конфигурация системы. Подтверждение Выберите Далее.
Дождитесь завершения проверки.
Выберите Просмотреть отчет, чтобы просмотреть отчет. Вы можете спокойно проигнорировать предупреждение о том, что виртуальные машины доступны только в одном сетевом интерфейсе. Инфраструктура Azure включает физическую избыточность и поэтому не требует добавления дополнительных сетевых интерфейсов.
Выберите Готово.Точка доступа для администрирования кластера Введите имя кластера, например SQLAGCluster1, в поле Имя кластера. Подтверждение Снимите флажок Добавить все допустимые хранилища в кластер и нажмите Далее. Итоги Выберите Готово. Предупреждение
Если вы не снимете флажок Add all eligible storage to the cluster (Добавить все допустимые хранилища в кластер), Windows отключит виртуальные диски во время кластеризации. Как следствие, они не будут отображаться в диспетчере дисков или проводнике, пока хранилище не будет удалено из кластера и повторно подключено с помощью PowerShell.
Настройка IP-адреса отказоустойчивого кластера
Как правило, назначенный кластеру IP-адрес — это тот же IP-адрес, который назначен виртуальной машине. Это означает, что в Azure IP-адрес кластера будет находиться в состоянии сбоя и не может быть подключен к сети. Измените IP-адрес кластера, чтобы перевести IP-ресурс в оперативный режим.
При подготовке необходимых компонентов необходимо назначить дополнительные IP-адреса каждой виртуальной машине SQL Server, как в таблице с примерами ниже (ваши IP-адреса могут отличаться):
Имя виртуальной машины | Имя подсети | Диапазон адресов подсети | Имя дополнительного IP-адреса | Дополнительный IP-адрес |
---|---|---|---|---|
SQL-VM-1 | SQL-subnet-1 | 10.38.1.0/24 | windows-cluster-ip | 10.38.1.10 |
SQL-VM-2 | SQL-subnet-2 | 10.38.2.0/24 | windows-cluster-ip | 10.38.2.10 |
Назначьте такие IP-адреса как IP-адреса кластера для каждой соответствующей подсети.
Примечание.
В Windows Server 2019 кластер создает имя распределенного сервера, а не имя сети кластера, а объект имени кластера (CNO) автоматически регистрируется с IP-адресами для всех узлов в кластере, что устраняет потребность в выделенном IP-адресе кластера Windows. Если вы находитесь в Windows Server 2019, пропустите этот раздел и другие действия, которые ссылаются на ресурсы ядра кластера или создайте кластер на основе виртуальной сети с помощью PowerShell. Дополнительные сведения см. в записи блога о сетевом объекте кластера.
Чтобы изменить IP-адрес кластера, сделайте следующее:
В диспетчере отказоустойчивости кластеров прокрутите вниз до раздела Ресурсы ядра кластера и разверните сведения о кластере. Вы должны увидеть имя и два ресурса IP-адресов из каждой подсети в состоянии Сбой.
Щелкните правой кнопкой мыши первый ресурс IP-адрес в состоянии сбоя и выберите Свойства.
Выберите Статический IP-адрес и измените IP-адрес на выделенный IP-адрес кластера Windows в подсети, назначенной первой виртуальной машине SQL Server (например, SQL-VM-1). Нажмите ОК.
Повторите шаги для второго ресурса IP-адрес в состоянии сбоя, указав выделенный IP-адрес кластера Windows для подсети второй виртуальной машины SQL Server (например, SQL-VM-2).
В разделе Ресурсы ядра кластера щелкните правой кнопкой мыши имя кластера и выберите Подключить. Подождите, пока имя и один из ресурсов IP-адресов находятся в сети.
Так как виртуальные машины SQL Server находятся в разных подсетях, кластер будет иметь зависимость OR от двух выделенных IP-адресов кластера Windows. Когда ресурс имени кластера подключится, на сервер контроллера домена будет добавлена новая учетную запись компьютера Active Directory (AD). Если основные ресурсы кластера перемещают узлы, один IP-адрес переходит в автономный режим, а другой подключается к сети и передает серверу контроллера домена новую связь IP-адреса.
Совет
При запуске кластера на виртуальных машинах Azure в рабочей среде задайте более гибкое состояние мониторинга в параметрах кластера, чтобы повысить стабильность и надежность кластера в облачной среде. Дополнительные сведения см. в статье Рекомендации по настройке высокой доступности и аварийного восстановления на виртуальных машинах SQL Server.
Настройка кворума
В кластере с двумя узлами для надежности и стабильности кластера требуется устройство кворума. На виртуальных машинах Azure в качестве конфигурации кворума рекомендуется использовать облако-свидетель, хотя возможны и другие варианты. В этом разделе описывается настройка облака-свидетеля для кворума. Определите ключи доступа к учетной записи хранения и настройте облако-свидетель.
Получение ключей доступа для учетной записи хранения
При создании учетной записи хранения Microsoft Azure она связывается с двумя автоматически создаваемыми ключами доступа — первичным ключом доступа и вторичным ключом доступа. Используйте первичный ключ доступа при первом создании облака-свидетеля, но в дальнейшем вы можете использовать любой из этих ключей для облака-свидетеля.
С помощью портала Azure вы можете просмотреть и ключи доступа к службе хранилища Azure и скопировать их (см. статью о необходимых компонентах).
Чтобы просмотреть и скопировать ключи доступа к хранилищу, сделайте следующее:
Перейдите к группе ресурсов на портале Azure и выберите созданную учетную запись хранения.
Выберите Ключи доступа в разделе Безопасность и сеть.
Выберите Показать ключи и скопируйте ключ.
Настройка облака-свидетеля
После копирования ключа доступа создайте облако-свидетель для кворума кластера.
Чтобы создать облако-свидетель, сделайте следующее:
Подключитесь к первой виртуальной машине SQL Server SQL-VM-1 по протоколу удаленного рабочего стола.
Запустите Windows PowerShell в режиме администратора.
Выполните скрипт PowerShell, чтобы задать значение TLS "1.2" для подключения:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Используйте PowerShell для настройки облака-свидетеля. Замените значения имени учетной записи хранения и ключа доступа своими данными:
Set-ClusterQuorum -CloudWitness -AccountName "Storage_Account_Name" -AccessKey "Storage_Account_Access_Key"
Приведенные ниже примеры выходных данных указывают на успешное выполнение:
Теперь для основных ресурсов кластера настроено облако-свидетель.
Включение компонента группы доступности
По умолчанию компонент группы доступности Always On отключен. С помощью диспетчера конфигурации SQL Server включите компонент на обоих экземплярах SQL Server.
Чтобы включить компонент группы доступности, сделайте следующее:
Запустите RDP-файл на первой виртуальной машине SQL Server (например, SQL-VM-1) с учетной записью домена, которая является членом предопределенной роли сервера sysadmin, например учетной записи домена CORP\Install, которую вы создали при работе с этой статьей.
На начальном экране виртуальных машин SQL Server запустите диспетчер конфигурации SQL Server.
В дереве обозревателя выберите Службы SQL Server, затем щелкните правой кнопкой мыши службу SQL Server (MSSQLSERVER) и выберите пункт Свойства.
Перейдите на вкладку "Высокий уровень доступности AlwaysOn", а затем установите флажок включить группы доступности AlwaysOn:
Выберите Применить. Нажмите кнопку ОК во всплывающем диалоговом окне.
Перезапустите службу SQL Server.
Повторите эти шаги для другого экземпляра SQL Server.
Включение функции FILESTREAM
Если вы не используете FILESTREAM для базы данных в группе доступности, пропустите этот шаг и перейдите к следующему шагу — создание базы данных.
Если вы планируете добавить базу данных в группу доступности, которая использует FILESTREAM, необходимо включить FILESTREAM, так как эта функция отключена по умолчанию. С помощью диспетчера конфигурации SQL Server включите компонент на обоих экземплярах SQL Server.
Чтобы включить функцию FILESTREAM, выполните следующие действия.
Запустите RDP-файл на первой виртуальной машине SQL Server (например, SQL-VM-1) с учетной записью домена, которая является членом предопределенной роли сервера sysadmin, например учетной записи домена CORP\Install, которую вы создали при работе с этой статьей.
На начальном экране виртуальных машин SQL Server запустите диспетчер конфигурации SQL Server.
В дереве обозревателя выберите Службы SQL Server, затем щелкните правой кнопкой мыши службу SQL Server (MSSQLSERVER) и выберите пункт Свойства.
Перейдите на вкладку FILESTREAM, а затем установите флажок Включить доступ FILESTREAM для Transact-SQL:
Выберите Применить. Нажмите кнопку ОК во всплывающем диалоговом окне.
В СРЕДЕ SQL Server Management Studio нажмите кнопку "Создать запрос", чтобы отобразить Редактор запросов.
В Редактор запросов введите следующий код Transact-SQL:
EXEC sp_configure filestream_access_level, 2 RECONFIGURE
Щелкните Выполнить.
Перезапустите службу SQL Server.
Повторите эти шаги для другого экземпляра SQL Server.
Создание базы данных
Чтобы создать базу данных, вы можете выполнить шаги из этого раздела или восстановить базу данных AdventureWorks. Вам также необходимо создать резервную копию новой базы данных, чтобы инициализировать цепочку журналов. Базы данных без резервных копий не удовлетворяет предварительным требованиям для группы доступности.
Чтобы создать базу данных, сделайте следующее:
- Запустите RDP-файл на первой виртуальной машине SQL Server (например, SQL-VM-1) с учетной записью домена, которая является членом предопределенной роли сервера sysadmin, например учетной записи домена CORP\Install, которую вы создали при работе с этой статьей.
- Откройте SQL Server Management Studio и подключитесь к экземпляру SQL Server.
- В обозревателе объектов щелкните правой кнопкой мыши Базы данных и выберите пункт Создать базу данных.
- В поле Имя базы данных введите MyDB1.
- Откройте страницу Параметры и выберите Полное в раскрывающемся меню Модель восстановления (если это значение не выбрано по умолчанию). База данных должна находиться в полной модели восстановления, чтобы соответствовать предварительным условиям участия в группе доступности.
- Нажмите OK, чтобы закрыть страницу Создание базы данных и создать базу данных.
Чтобы создать резервную копию базы данных, сделайте следующее:
В обозревателе объектов щелкните правой кнопкой мыши базу данных, выберите Задачи и Создать резервную копию.
Нажмите кнопку ОК, чтобы создать полную резервную копию базы данных в расположении резервных копий по умолчанию.
Создать общую папку
Создайте общую папку резервных копий, к которой имеют доступ как виртуальные машины SQL Server, так и их учетные записи служб.
Чтобы создать общую папку резервных копий, сделайте следующее:
На первой виртуальной машине SQL Server в диспетчере серверов выберите Инструменты. Откройте Управление компьютером.
Выберите Общие папки.
Щелкните правой кнопкой мыши элемент Общие папки, выберите Создать общую папку и создайте общую папку с помощью соответствующего мастера.
Рядом с полем Путь к папке нажмите кнопку Обзор и укажите путь к общей папке резервных копий баз данных или создайте его (например,
C:\Backup
). Выберите Далее.В окне Имя, описание и параметры проверьте имя и путь общего ресурса. Выберите Далее.
В окне Разрешения для общей папки выберите Настройка разрешений доступа. Выберите Пользовательский.
В разделе "Настройка разрешений" нажмите кнопку "Добавить".
Проверьте полный контроль , чтобы предоставить полный доступ к учетной записи службы SQL Server (
Corp\SQLSvc
):Нажмите ОК.
В окне Разрешения для общей папки нажмите кнопку Готово. Выберите Готово еще раз.
Создание группы доступности.
После создания резервной копии базы данных можно приступать к созданию группы доступности, которая автоматически создает полную резервную копию и резервную копию журнала транзакций из основной реплики SQL Server и восстанавливает ее на экземпляре-получателе SQL Server с параметром NORECOVERY.
Чтобы создать группу доступности, выполните следующие шаги.
В обозревателе объектов в SQL Server Management Studio щелкните правой кнопкой мыши элемент Высокий уровень доступности Always On для первой виртуальной машины SQL Server (например, SQL-VM-1) и выберите пункт Мастер создания групп доступности.
На странице Введите выберите Далее. На странице Указание имени группы доступности в поле Имя группы доступности введите имя группы доступности, например AG1. Выберите Далее.
На странице Выбор баз данных выберите свою базу данных и нажмите кнопку Далее. Если база данных не соответствует предварительным требованиям, убедитесь, что она находится в полной модели восстановления и создайте резервную копию:
На странице Указание реплик выберите Добавить реплику.
Появится диалоговое окно Подключение к серверу . Введите имя второго сервера в поле Имя сервера, например SQL-VM-2. Нажмите Подключиться.
На странице Указание реплик установите флажок Автоматический переход на другой ресурс и выберите в раскрывающемся списке Синхронная фиксация для режима доступности:
Откройте вкладку Конечные точки, чтобы подтвердить порты, используемые для конечной точки зеркалирования базы данных и открытые в брандмауэре:
Откройте вкладку Прослушиватель и выберите Создать прослушиватель группы доступности, указав следующие значения для прослушивателя:
Поле значение DNS-имя прослушивателя: AG1-Listener Порт Используйте порт SQL Server по умолчанию. 1433 Сетевой режим: Статический IP-адрес Выберите Добавить, чтобы указать дополнительный выделенный IP-адрес для прослушивателя для обеих виртуальных машинах SQL Server.
В следующей таблице приведены примеры IP-адресов, созданных для прослушивателя (с помощью статьи о необходимых компонентах), хотя ваши IP-адреса могут отличаться:
Имя виртуальной машины Имя подсети Диапазон адресов подсети Имя дополнительного IP-адреса Дополнительный IP-адрес SQL-VM-1 SQL-subnet-1 10.38.1.0/24 availability-group-listener 10.38.1.11 SQL-VM-2 SQL-subnet-2 10.38.2.0/24 availability-group-listener 10.38.2.11 Выберите первую подсеть (например, 10.38.1.0/24) из раскрывающегося списка в диалоговом окне Добавление IP-адреса и укажите дополнительный выделенный адрес IPv4 прослушивателя, например
10.38.1.11
. Нажмите ОК.Повторите этот шаг,но выберите другую подсеть из раскрывающегося списка (например, 10.38.2.0/24) и укажите дополнительный выделенный адрес IPv4 прослушивателя для другой виртуальной машины SQL Server, например
10.38.2.11
. Нажмите ОК.После просмотра значений на странице Прослушиватель выберите Далее:
На странице Выбор начальной синхронизации данных выберите Полная резервная копия базы данных и журнала и укажите созданное ранее расположение сетевой папки, например
\\SQL-VM-1\Backup
.Примечание.
При полной синхронизации полная резервная копия базы данных создается на первом экземпляре SQL Server и восстанавливается на втором экземпляре. Полная синхронизация не рекомендуется для больших баз данных, так как может занимать много времени. Это время можно сократить, вручную создав резервную копию базы данных и восстановив ее с параметром
NO RECOVERY
. Если до настройки группы доступности база данных уже была восстановлена с параметромNO RECOVERY
на втором сервере SQL Server, выберите вариант Только присоединение. Если вы хотите создать резервную копию после настройки группы доступности, выберите переключатель Пропустить начальную синхронизацию данных.На странице Проверка убедитесь, что пройдены все проверки, и выберите Далее:
На странице Сводка выберите Готово и подождите, пока мастер настроит новую группу доступности. Выберите Дополнительные сведения на странице Ход выполнения, чтобы просмотреть подробности о ходе выполнения. Когда на странице Результаты вы увидите, что мастер успешно завершил работу, изучите сводку и убедитесь, что группа доступности и прослушиватель были созданы.
Нажмите кнопку Закрыть, чтобы выйти из мастера.
Проверка группы доступности
Вы можете проверить работоспособность группы доступности с помощью SQL Server Management Studio и диспетчера отказоустойчивости кластеров.
Чтобы проверить состояние группы доступности, сделайте следующее:
В обозревателе объектов разверните узел Высокий уровень доступности AlwaysOn, а затем узел Группы доступности. Теперь в этом контейнере должна появиться новая группа доступности. Щелкните правой кнопкой мыши группу доступности и выберите Показать панель мониторинга.
На панели мониторинга группы доступности отображается реплика, режим отработки отказа каждой реплики и состояние синхронизации, как в следующем примере:
Откройте Диспетчер отказоустойчивости кластеров, выберите кластер и выберите Роли, чтобы просмотреть роль группы доступности, созданную в кластере. Выберите роль AG1 и перейдите на вкладку Ресурсы, чтобы просмотреть прослушиватель и связанные с ним IP-адреса, как показано в следующем примере:
На этом этапе у вас есть группа доступности с репликами на двух экземплярах SQL Server и соответствующим прослушивателем группы доступности. Вы можете подключиться с помощью прослушивателя, а группу доступности можно перемещать между экземплярами с помощью SQL Server Management Studio.
Предупреждение
Не пытайтесь выполнить отработку отказа для группы доступности через диспетчер отказоустойчивости кластеров. Все операции отработки отказа следует выполнять через панель мониторинга AlwaysOn или с помощью Transact-SQL (T-SQL) в SQL Server Management Studio. Дополнительные сведения см. в статье Отказоустойчивая кластеризация и группы доступности AlwaysOn (SQL Server).
Проверка подключения прослушивателя
Когда ваша группа доступности будет готова и прослушиватель будет настроен с соответствующими дополнительными IP-адресами, проверьте подключение к прослушивателю.
Для создания подключения сделайте следующее:
С помощью протокола удаленного рабочего стола подключитесь к SQL Server, который располагается в этой же виртуальной сети, но не имеет реплики, например к другому экземпляру SQL Server в кластере или к другой виртуальной машине с установленным решением SQL Server Management Studio.
Откройте SQL Server Management Studio и в диалоговом окне Подключение к серверу введите имя прослушивателя (например, AG1-Listener) в поле Имя сервера: и выберите Параметры:
Введите
MultiSubnetFailover=True
в окне Дополнительные параметры подключения и выберите Подключиться, чтобы автоматически подключиться к экземпляру с первичной репликой SQL Server:
Примечание.
- При подключении к группе доступности в разных подсетях параметр
MultiSubnetFailover=true
обеспечивает более быстрое обнаружение текущей первичной реплики и подключение к ней. См. раздел Подключение с помощью MultiSubnetFailover.
Следующие шаги
Теперь, когда вы настроили группу доступности с несколькими подсетью, при необходимости вы можете расширить ее в нескольких регионах.
Дополнительные сведения см. на следующих ресурсах: