Отказоустойчивая кластеризация и группы доступности AlwaysOn (SQL Server)

Применимо к: даSQL Server (все поддерживаемые версии)  — только Windows

Группы доступности AlwaysOn — решение высокого уровня доступности и аварийного восстановления, появившееся в SQL Server 2012 (11.x). Требует наличия отказоустойчивого кластера Windows Server (WSFC). Кроме того, хотя Группы доступности AlwaysOn не зависит от отказоустойчивого кластера SQL Server , на экземпляре отказоустойчивого кластера (FCI) можно размещать реплику для группы доступности. При проектировании среды Группы доступности AlwaysOn важно знать роль каждой из технологий кластеризации, а также иметь представления о необходимых требованиях.

Примечание

Сведения о концепциях Группы доступности AlwaysOn см. в разделе Обзор групп доступности AlwaysOn (SQL Server).

Кластер WSFC и группы доступности

Для развертывания Группы доступности AlwaysOn требуется кластер WSFC. Чтобы экземпляр Группы доступности AlwaysOnможно было использовать в SQL Server, необходимо, чтобы он размещался на узле WSFC, а кластер WSFC и узел были работоспособны. Также все реплики доступности в заданной группе доступности должны располагаться на разных узлах одного кластера WSFC. Единственное исключение состоит в том, что при переносе в другой кластер WSFC группа доступности может временно находиться в двух кластерах.

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

Кворум для Группы доступности AlwaysOn рассчитывается на всех узлах в кластере WSFC вне зависимости от того, хранится ли на данном узле кластера какая-либо реплика доступности. В отличие от процесса зеркального отображения базы данных, в Группы доступности AlwaysOn нет роли следящего объекта.

Общая работоспособность кластера WSFC определяется голосами на кворуме узлов в кластере. Если кластер WSFC перешел в автономный режим в результате непредвиденной аварийной ситуации, постоянно возникающего сбоя в оборудовании или ошибки связи, то требуется вмешательство администратора. Администратор кластера Windows Server или WSFC должен будет создать принудительный кворум, а затем перевести работоспособные узлы кластера обратно в автономный режим в неотказоустойчивой конфигурации.

Важно!

Группы доступности AlwaysOn — это подразделы кластера WSFC. При удалении и повторном создании кластера WSFC необходимо отключить и повторно включить функцию Группы доступности AlwaysOn в каждом экземпляре SQL Server, где была размещена реплика доступности в исходном кластере WSFC.

Дополнительные сведения о запуске SQL Server в узлах кластера WSFC и кворуме WSFC см. в разделе Отказоустойчивая кластеризация Windows Server (WSFC) с SQL Server.

SQL Server Экземпляры отказоустойчивого кластера (FCI) и группы доступности

Можно настроить второй уровень отказоустойчивости на уровне экземпляра сервера путем реализации FCI SQL Server совместно с кластером WSFC. Реплика доступности может размещаться либо с помощью отдельного экземпляра SQL Server или экземпляра FCI. Только партнер FCI может размещать реплику для данной группы доступности. Во время работы реплики доступности на экземплярах отказоустойчивого кластера (FCI) список возможных владельцев для группы доступности будет содержать только активный узел FCI.

Группы доступности AlwaysOn не зависит от формы общего хранилища. Однако при использовании экземпляра отказоустойчивого кластера SQL Server для размещения одной или нескольких реплик доступности для каждого из этих экземпляров потребуется общее хранилище в соответствии со стандартной установкой экземпляра отказоустойчивого кластера SQL Server.

Дополнительные сведения о других предварительных требованиях см. в подразделе "Предварительные требования и ограничения, связанные с использованием экземпляра отказоустойчивого кластера SQL Server (FCI) для размещения реплики доступности" раздела Предварительные условия и ограничения, связанные с использованием экземпляра отказоустойчивого кластера SQL Server для размещения реплики доступности (SQL Server).

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

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

Узлы в FCI Реплики в группе доступности
Использует WSFC Да Да
Уровень защиты Экземпляр База данных
Тип хранилища Совмещаемая блокировка Не общее

Хотя реплики в группе доступности не используют общее хранилище, реплика, размещенная FCI, использует решение общего хранилища, в соответствии с требованиями этого FCI. Решение хранения данных совместно используется только узлами в FCI, но не между репликами группы доступности.
Решения хранения данных Прямое подключение, SAN, точки подключения, SMB Зависит от типа узла
Доступные для чтения вторичные Нет* Да
Применимые параметры политики отработки отказа Кворум WSFC

Связанный с FCI

Параметры группы доступности**
Кворум WSFC

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

*Хотя синхронные вторичные реплики в группе доступности всегда запускаются в соответствующих экземплярах SQL Server , соответствующие экземпляры SQL Server на вторичных узлах в FCI не запущены и, следовательно, недоступны для чтения. В FCI вторичный узел запускает экземпляр SQL Server только при передаче группы ресурсов во владение при отработке отказа FCI. Однако на активном узле FCI в случаях, когда база данных, размещенная FCI, принадлежит группе доступности, если локальная реплика доступности запускается как вторичная реплика, доступная для чтения, база данных также доступна для чтения.

**Параметры политики перехода на другой ресурс для группы доступности применимы ко всем репликам, независимо от того, размещаются ли они в автономном экземпляре или экземпляре FCI.

Примечание

Дополнительные сведения о числе узлов в FCI и группах доступности Always On для разных выпусков SQL Server см. в разделе Функции, поддерживаемые выпусками SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).

Рекомендации для размещения реплики доступности на FCI

Важно!

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

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

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

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

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

Марцелл настраивает два отказоустойчивых кластера WSFC, состоящие из двух узлов каждый: NODE01 и NODE02. Он устанавливает экземпляр отказоустойчивого кластера SQL Server , fciInstance1на NODE01 и NODE02 , где NODE01 является текущим владельцем для fciInstance1.
На NODE02Марцелл устанавливает еще один экземпляр SQL Server, Instance3, который является автономным.
На узле NODE01Марцелл включает fciInstance1 для Группы доступности AlwaysOn. В NODE02он включает Instance3 для Группы доступности AlwaysOn. Затем он настраивает группу доступности, для которой fciInstance1 размещает первичную реплику, а Instance3 размещает вторичную реплику.
В какой-то момент экземпляр fciInstance1 становится недоступным на NODE01, и кластер WSFC вызывает отработку отказа fciInstance1 на NODE02. После отработки отказа экземпляр fciInstance1 является экземпляром с Группы доступности AlwaysOn, запущенным в основной роли на узле NODE02. Однако экземпляр Instance3 теперь находится на том же узле кластера WSFC, что и fciInstance1. Это нарушает ограничение Группы доступности AlwaysOn .
Чтобы проблема, описанная в этом сценарии, не возникала, изолированный экземпляр Instance3должен находиться на отдельном узле в том же кластере WSFC, что и узлы NODE01 и NODE02.

Дополнительные сведения об FCI SQL Server см. в разделе Экземпляры отказоустойчивого кластера (режим Always On) (SQL Server).

Ограничения на использование диспетчера отказоустойчивости кластеров WSFC с группами доступности

Не используйте диспетчер отказоустойчивости кластеров для управления группами доступности, например:

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

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

  • Не используйте диспетчер отказоустойчивого кластера для перемещения групп доступности на другие узлы или резервные группы доступности. Диспетчер отказоустойчивого кластера не имеет сведений о состоянии синхронизации реплик доступности, и это может привести к длительному простою. Необходимо использовать Transact-SQL или среду SQL Server Management Studio.

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

Если с помощью диспетчера отказоустойчивости кластеров переместить экземпляр отказоустойчивого кластера с группой доступности на узел, который уже содержит реплику той же группы доступности, это может привести к потере этой реплики. Таким образом, эта реплика не будет включена на целевом узле. Один узел отказоустойчивого кластера не может содержать более одной реплики той же группы доступности. Дополнительные сведения о том, как это происходит, и шаги восстановления см. в записи блога Issue: Replica Unexpectedly Dropped in Availability Group (Проблема: неожиданное удаление реплики в группе доступности).

См. также:

Обзор групп доступности AlwaysOn (SQL Server)
Включение и отключение групп доступности AlwaysOn (SQL Server)
Отслеживание групп доступности (Transact-SQL)
Экземпляры отказоустойчивого кластера (режим AlwaysOn) (SQL Server)