Отказоустойчивая кластеризация и группы доступности AlwaysOn (SQL Server)Failover Clustering and Always On Availability Groups (SQL Server)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server (только в Windows) нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server (Windows only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Группы доступности AlwaysOnAlways On availability groups — решение высокого уровня доступности и аварийного восстановления, появившееся в SQL Server 2012 (11.x)SQL Server 2012 (11.x). Требует наличия отказоустойчивого кластера Windows Server (WSFC)., the high availability and disaster recovery solution introduced in SQL Server 2012 (11.x)SQL Server 2012 (11.x), requires Windows Server Failover Clustering (WSFC). Кроме того, хотя Группы доступности AlwaysOnAlways On availability groups не зависит от отказоустойчивого кластера SQL ServerSQL Server , на экземпляре отказоустойчивого кластера (FCI) можно размещать реплику для группы доступности.Also, though Группы доступности AlwaysOnAlways On availability groups is not dependent upon SQL ServerSQL Server Failover Clustering, you can use a failover clustering instance (FCI) to host an availability replica for an availability group. При проектировании среды Группы доступности AlwaysOnAlways On availability groups важно знать роль каждой из технологий кластеризации, а также иметь представления о необходимых требованиях.It is important to know the role of each clustering technology, and to know what considerations are necessary as you design your Группы доступности AlwaysOnAlways On availability groups environment.

Примечание

Сведения о концепциях Группы доступности AlwaysOnAlways On availability groups см. в разделе Обзор групп доступности AlwaysOn (SQL Server).For information about Группы доступности AlwaysOnAlways On availability groups concepts, see Overview of Always On Availability Groups (SQL Server).

Кластер WSFC и группы доступностиWindows Server Failover Clustering and Availability Groups

Для развертывания Группы доступности AlwaysOnAlways On availability groups требуется кластер WSFC.Deploying Группы доступности AlwaysOnAlways On availability groups requires a Windows Server Failover Cluster (WSFC). Чтобы экземпляр Группы доступности AlwaysOnAlways On availability groupsможно было использовать в SQL ServerSQL Server, необходимо, чтобы он размещался на узле WSFC, а кластер WSFC и узел были работоспособны.To be enabled for Группы доступности AlwaysOnAlways On availability groups, an instance of SQL ServerSQL Server must reside on a WSFC node, and the WSFC and node must be online. Также все реплики доступности в заданной группе доступности должны располагаться на разных узлах одного кластера WSFC.Furthermore, each availability replica of a given availability group must reside on a different node of the same WSFC. Единственное исключение состоит в том, что при переносе в другой кластер WSFC группа доступности может временно находиться в двух кластерах.The only exception is that while being migrated to another WSFC, an availability group can temporarily straddle two clusters.

Группы доступности AlwaysOnAlways On availability groups использует кластер WSFC для наблюдения за текущими ролями реплик доступности, принадлежащих к данной группе доступности, и управления ими, а также для определения влияния отработки отказа на реплики доступности.relies on the Windows Server Failover Cluster (WSFC) to monitor and manage the current roles of the availability replicas that belong to a given availability group and to determine how a failover event affects the availability replicas. Группа ресурсов WSFC создается для каждой создаваемой группы доступности.A WSFC resource group is created for every availability group that you create. Кластер WSFC отслеживает данную группу ресурсов для оценки работоспособности первичной реплики.The WSFC monitors this resource group to evaluate the health of the primary replica.

Кворум для Группы доступности AlwaysOnAlways On availability groups рассчитывается на всех узлах в кластере WSFC вне зависимости от того, хранится ли на данном узле кластера какая-либо реплика доступности.The quorum for Группы доступности AlwaysOnAlways On availability groups is based on all nodes in the WSFC regardless of whether a given cluster node hosts any availability replicas. В отличие от процесса зеркального отображения базы данных, в Группы доступности AlwaysOnAlways On availability groups нет роли следящего объекта.In contrast to database mirroring, there is no witness role in Группы доступности AlwaysOnAlways On availability groups.

Общая работоспособность кластера WSFC определяется голосами на кворуме узлов в кластере.The overall health of a WSFC is determined by the votes of quorum of nodes in the cluster. Если кластер WSFC перешел в автономный режим в результате непредвиденной аварийной ситуации, постоянно возникающего сбоя в оборудовании или ошибки связи, то требуется вмешательство администратора.If the WSFC goes offline because of an unplanned disaster, or due to a persistent hardware or communications failure, manual administrative intervention is required. Администратор кластера Windows Server или WSFC должен будет создать принудительный кворум, а затем перевести работоспособные узлы кластера обратно в автономный режим в неотказоустойчивой конфигурации.A Windows Server or WSFC administrator will need to force a quorum and then bring the surviving cluster nodes back online in a non-fault-tolerant configuration.

Важно!

Группы доступности AlwaysOnAlways On availability groups — это подразделы кластера WSFC.registry keys are subkeys of the WSFC. При удалении и повторном создании кластера WSFC необходимо отключить и повторно включить функцию Группы доступности AlwaysOnAlways On availability groups в каждом экземпляре SQL ServerSQL Server, где была размещена реплика доступности в исходном кластере WSFC.If you delete and re-create a WSFC, you must disable and re-enable the Группы доступности AlwaysOnAlways On availability groups feature on each instance of SQL ServerSQL Server that hosted an availability replica on the original WSFC.

Дополнительные сведения о запуске SQL ServerSQL Server в узлах кластера WSFC и кворуме WSFC см. в разделе Отказоустойчивая кластеризация Windows Server (WSFC) с SQL Server.For information about running SQL ServerSQL Server on WSFC nodes and about WSFC quorum, see Windows Server Failover Clustering (WSFC) with SQL Server.

SQL ServerSQL Server Экземпляры отказоустойчивого кластера (FCI) и группы доступностиSQL ServerSQL Server Failover Cluster Instances (FCIs) and Availability Groups

Можно настроить второй уровень отказоустойчивости на уровне экземпляра сервера путем реализации FCI SQL ServerSQL Server совместно с кластером WSFC.You can set up a second layer of failover at the server-instance level by implementing SQL ServerSQL Server an FCI together with the WSFC. Реплика доступности может размещаться либо с помощью отдельного экземпляра SQL ServerSQL Server или экземпляра FCI.An availability replica can be hosted by either a standalone instance of SQL ServerSQL Server or an FCI instance. Только партнер FCI может размещать реплику для данной группы доступности.Only one FCI partner can host a replica for a given availability group. Во время работы реплики доступности на экземплярах отказоустойчивого кластера (FCI) список возможных владельцев для группы доступности будет содержать только активный узел FCI.When an availability replica is running on an FCI, the possible owners list for the availability group will contain only the active FCI node.

Группы доступности AlwaysOnAlways On availability groups не зависит от формы общего хранилища.does not depend on any form of shared storage. Однако при использовании экземпляра отказоустойчивого кластера SQL ServerSQL Server для размещения одной или нескольких реплик доступности для каждого из этих экземпляров потребуется общее хранилище в соответствии со стандартной установкой экземпляра отказоустойчивого кластера SQL Server.However, if you use a SQL ServerSQL Server failover cluster instance (FCI) to host one or more availability replicas, each of those FCIs will require shared storage as per standard SQL Server failover cluster instance installation.

Дополнительные сведения о других предварительных требованиях см. в подразделе "Предварительные требования и ограничения, связанные с использованием экземпляра отказоустойчивого кластера SQL Server (FCI) для размещения реплики доступности" раздела Предварительные условия и ограничения, связанные с использованием экземпляра отказоустойчивого кластера SQL Server для размещения реплики доступности (SQL Server).For more information about additional prerequisites, see the "Prerequisites and Restrictions for Using a SQL Server Failover Cluster Instance (FCI) to Host an Availability Replica" section of Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

Сравнение экземпляров отказоустойчивого кластера и групп доступностиComparison of Failover Cluster Instances and Availability Groups

Независимо от количества узлов в FCI, во всем FCI размещается одна реплика в группе доступности.Regardless of the number of nodes in the FCI, an entire FCI hosts a single replica within an availability group. В следующей таблице описаны различия концепций узлов в FCI и репликах в группе доступности.The following table describes the distinctions in concepts between nodes in an FCI and replicas within an availability group.

Узлы в FCINodes within an FCI Реплики в группе доступностиReplicas within an availability group
Использует WSFCUses WSFC ДаYes ДаYes
Уровень защитыProtection level ЭкземплярInstance База данныхDatabase
Тип хранилищаStorage type SharedShared Не общееNon-shared

Хотя реплики в группе доступности не используют общее хранилище, реплика, размещенная FCI, использует решение общего хранилища, в соответствии с требованиями этого FCI.While the replicas in an availability group do not share storage, a replica that is hosted by an FCI uses a shared storage solution as required by that FCI. Решение хранения данных совместно используется только узлами в FCI, но не между репликами группы доступности.The storage solution is shared only by nodes within the FCI and not between replicas of the availability group.
Решения хранения данныхStorage solutions Прямое подключение, SAN, точки подключения, SMBDirect attached, SAN, mount points, SMB Зависит от типа узлаDepends on node type
Доступные для чтения вторичныеReadable secondaries Нет*No* ДаYes
Применимые параметры политики отработки отказаApplicable failover policy settings Кворум WSFCWSFC quorum

Связанный с FCIFCI-specific

Параметры группы доступности**Availability group settings**
Кворум WSFCWSFC quorum

Настройки группы доступностиAvailability group settings
Ресурсы для перехода в случае сбояFailed-over resources Сервер, экземпляр и база данныхServer, instance, and database Только база данныхDatabase only

*Хотя синхронные вторичные реплики в группе доступности всегда запускаются в соответствующих экземплярах SQL ServerSQL Server , соответствующие экземпляры SQL ServerSQL Server на вторичных узлах в FCI не запущены и, следовательно, недоступны для чтения.*Whereas synchronous secondary replicas in an availability group are always running on their respective SQL ServerSQL Server instances, secondary nodes in an FCI actually have not started their respective SQL ServerSQL Server instances and are therefore not readable. В FCI вторичный узел запускает экземпляр SQL ServerSQL Server только при передаче группы ресурсов во владение при отработке отказа FCI.In an FCI, a secondary node starts its SQL ServerSQL Server instance only when the resource group ownership is transferred to it during an FCI failover. Однако на активном узле FCI в случаях, когда база данных, размещенная FCI, принадлежит группе доступности, если локальная реплика доступности запускается как вторичная реплика, доступная для чтения, база данных также доступна для чтения.However, on the active FCI node, when an FCI-hosted database belongs to an availability group, if the local availability replica is running as a readable secondary replica, the database is readable.

**Параметры политики перехода на другой ресурс для группы доступности применимы ко всем репликам, независимо от того, размещаются ли они в автономном экземпляре или экземпляре FCI.**Failover policy settings for the availability group apply to all replicas, whether it is hosted in a standalone instance or an FCI instance.

Примечание

Дополнительные сведения о числе узлов в FCI и группах доступности Always On для разных выпусков SQL ServerSQL Server см. в разделе Функции, поддерживаемые выпусками SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).For more information about Number of nodes within FCIs and Always On Availability Groups for different editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2012 (https://go.microsoft.com/fwlink/?linkid=232473).

Рекомендации для размещения реплики доступности на FCIConsiderations for hosting an Availability Replica on an FCI

Важно!

При необходимости в размещении реплики доступности в экземпляре отказоустойчивого кластера SQL Server убедитесь, что узлы Windows Server 2008 соответствуют предварительным требованиям AlwaysOn и ограничениям для экземпляров отказоустойчивого кластера.If you plan to host an availability replica on a SQL Server Failover Cluster Instance (FCI), ensure that the Windows Server 2008 host nodes meet the Always On prerequisites and restrictions for Failover Cluster Instances (FCIs). Дополнительные сведения см. в разделе Предварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server).For more information, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

SQL ServerSQL Server Экземпляры отказоустойчивого кластера (FCI) не поддерживают автоматический переход на другой ресурс с учетом групп доступности, поэтому любая реплика доступности, размещенная в них, должна быть настроена для перехода на другой ресурс вручную.Failover Cluster Instances (FCIs) do not support automatic failover by availability groups, so any availability replica that is hosted by an FCI can only be configured for manual failover.

Может потребоваться настройка кластера WSFC для включения общих дисков, которые доступны не на всех узлах.You might need to configure a WSFC to include shared disks that are not available on all nodes. Например, рассмотрим кластер WSFC между двумя центрами обработки данных с тремя узлами.For example, consider a WSFC across two data centers with three nodes. На двух узлах размещается экземпляр отказоустойчивой кластеризации SQL Server в основном центре обработки данных; им предоставлен доступ к одним и тем же общим дискам.Two of the nodes host a SQL Server failover cluster instance (FCI) in the primary data center and have access to the same shared disks. На третьем узле размещается автономный экземпляр SQL Server в другом центре обработки данных и отсутствует доступ к общим дискам от основного центра обработки данных.The third node hosts a stand-alone instance of SQL Server in a different data center and does not have access to the shared disks from the primary data center. Эта конфигурация кластера WSFC поддерживает развертывание группы доступности, если на экземпляре отказоустойчивого кластера размещена первичная реплика и на автономном экземпляре находится вторичная реплика.This WSFC configuration supports the deployment of an availability group if the FCI hosts the primary replica and the stand-alone instance hosts the secondary replica.

При выборе FCI для размещения реплики доступности для данной группы доступности убедитесь, что отработка отказа FCI не может привести к попытке отдельного узла WSFC размещения двух реплик доступности для одной группы доступности.When choosing an FCI to host an availability replica for a given availability group, ensure that an FCI failover could not potentially cause a single WSFC node to attempt to host two availability replicas for the same availability group.

В следующем примере сценария показано, как подобная конфигурация может вызывать проблемы.The following example scenario illustrates how this configuration could lead to problems:

Марцелл настраивает два отказоустойчивых кластера WSFC, состоящие из двух узлов каждый: NODE01 и NODE02.Marcel configures two a WSFC with two nodes, NODE01 and NODE02. Он устанавливает экземпляр отказоустойчивого кластера SQL ServerSQL Server , fciInstance1на NODE01 и NODE02 , где NODE01 является текущим владельцем для fciInstance1.He installs a SQL ServerSQL Server failover cluster instance, fciInstance1, on both NODE01 and NODE02 where NODE01 is the current owner for fciInstance1.
На NODE02Марцелл устанавливает еще один экземпляр SQL ServerSQL Server, Instance3, который является автономным.On NODE02, Marcel installs another instance of SQL ServerSQL Server, Instance3, which is a stand-alone instance.
На узле NODE01Марцелл включает fciInstance1 для Группы доступности AlwaysOnAlways On availability groups.On NODE01, Marcel enables fciInstance1 for Группы доступности AlwaysOnAlways On availability groups. В NODE02он включает Instance3 для Группы доступности AlwaysOnAlways On availability groups.On NODE02, he enables Instance3 for Группы доступности AlwaysOnAlways On availability groups. Затем он настраивает группу доступности, для которой fciInstance1 размещает первичную реплику, а Instance3 размещает вторичную реплику.Then he sets up an availability group for which fciInstance1 hosts the primary replica, and Instance3 hosts the secondary replica.
В какой-то момент экземпляр fciInstance1 становится недоступным на NODE01, и кластер WSFC вызывает отработку отказа fciInstance1 на NODE02.At some point fciInstance1 becomes unavailable on NODE01, and the WSFC causes a failover of fciInstance1 to NODE02. После отработки отказа экземпляр fciInstance1 является экземпляром с Группы доступности AlwaysOnAlways On availability groups, запущенным в основной роли на узле NODE02.After the failover, fciInstance1 is a Группы доступности AlwaysOnAlways On availability groups-enabled instance running under the primary role on NODE02. Однако экземпляр Instance3 теперь находится на том же узле кластера WSFC, что и fciInstance1.However, Instance3 now resides on the same WSFC node as fciInstance1. Это нарушает ограничение Группы доступности AlwaysOnAlways On availability groups .This violates the Группы доступности AlwaysOnAlways On availability groups constraint.
Чтобы проблема, описанная в этом сценарии, не возникала, изолированный экземпляр Instance3должен находиться на отдельном узле в том же кластере WSFC, что и узлы NODE01 и NODE02.To correct the problem that this scenario presents, the stand-alone instance, Instance3, must reside on another node in the same WSFC as NODE01 and NODE02.

Дополнительные сведения об FCI SQL ServerSQL Server см. в разделе Экземпляры отказоустойчивого кластера (режим Always On) (SQL Server).For more information about SQL ServerSQL Server FCIs, see Always On Failover Cluster Instances (SQL Server).

Ограничения на использование диспетчера отказоустойчивости кластеров WSFC с группами доступностиRestrictions on Using The WSFC Failover Cluster Manager with Availability Groups

Не используйте диспетчер отказоустойчивости кластеров для управления группами доступности, например:Do not use the Failover Cluster Manager to manipulate availability groups, for example:

  • Нельзя добавлять или удалять ресурсы в службе, поддерживающей работу в кластере (группе ресурсов) для группы доступности.Do not add or remove resources in the clustered service (resource group) for the availability group.

  • Не изменяйте свойства групп доступности, такие как возможные владельцы и предпочтительные владельцы.Do not change any availability group properties, such as the possible owners and preferred owners. Эти свойства устанавливаются автоматически группой доступности.These properties are set automatically by the availability group.

  • Не используйте диспетчер отказоустойчивого кластеров для перемещения групп доступности на другие узлы или резервные группы доступности.Do not use the Failover Cluster Manager to move availability groups to different nodes or to fail over availability groups. Диспетчер отказоустойчивого кластера не имеет сведений о состоянии синхронизации реплик доступности, и это может привести к длительному простою.The Failover Cluster Manager is not aware of the synchronization status of the availability replicas, and doing so can lead to extended downtime. Необходимо использовать Transact-SQLTransact-SQL или среду SQL Server Management StudioSQL Server Management Studio.You must use Transact-SQLTransact-SQL or SQL Server Management StudioSQL Server Management Studio.

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

Если с помощью диспетчера отказоустойчивости кластеров переместить экземпляр отказоустойчивого кластера с группой доступности на узел, который уже содержит реплику той же группы доступности, это может привести к потере этой реплики. Таким образом, эта реплика не будет включена на целевом узле.Using the Failover Cluster Manager to move a failover cluster instance hosting an availability group to a node that is already hosting a replica of the same availability group may result in the loss of the availability group replica, preventing it from being brought online on the target node. Один узел отказоустойчивого кластера не может содержать более одной реплики той же группы доступности.A single node of a failover cluster cannot host more than one replica for the same availability group. Дополнительные сведения о том, как это происходит, и шаги восстановления см. в записи блога Issue: Replica Unexpectedly Dropped in Availability Group (Проблема: неожиданное удаление реплики в группе доступности).For more information on how this occurs, and how to recover, see the blog Replica unexpectedly dropped in availability group.

См. такжеRelated Content

См. также:See Also

Обзор групп доступности AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Включение и отключение групп доступности AlwaysOn (SQL Server) Enable and Disable Always On Availability Groups (SQL Server)
Отслеживание групп доступности (Transact-SQL) Monitor Availability Groups (Transact-SQL)
Экземпляры отказоустойчивого кластера (режим AlwaysOn) (SQL Server)Always On Failover Cluster Instances (SQL Server)