Настройка гибкой политики отработки отказа для обеспечения контроля над автоматическим переходом на другой ресурс (группы доступности AlwaysOn)

В этом разделе описывается настройка гибкой политики отработки отказа для группы доступности AlwaysOn с помощью Transact-SQL или PowerShell в SQL Server 2014. Гибкая политика отработки отказа предоставляет гранулярное управление условиями, которые могут вызвать автоматический переход на другой ресурс для группы доступности. Изменяя условия отказа, которые инициируют автоматический переход на другой ресурс, и частоту проверки исправности, вы можете увеличить или уменьшить вероятность автоматического перехода на другой ресурс и добиться высокого уровня доступности соглашения об уровне обслуживания.

> [!NOTE]  
>  The flexible failover policy of an availability group cannot be configured by using [!INCLUDE[ssManStudioFull](../../../includes/ssmanstudiofull-md.md)].  

Перед началом

Ограничения автоматического перехода на другой ресурс

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

  • Если в группе доступности превышен порог сбоя WSFC, то кластер WSFC не выполняет автоматический переход на другой ресурс для этой группы доступности. Более того, группа ресурсов WSFC для группы доступности остается в состоянии сбоя, пока администратор кластера вручную не переведет сбойную группу ресурсов в режим «в сети» или пока администратор базы данных вручную не выполнит переход группы доступности на другой ресурс. Порог сбоя WSFC определяется как максимальное число сбоев, которые могут произойти в группе доступности за заданный период времени. По умолчанию используется период в шесть часов, а максимальное число сбоев за этот период по умолчанию равно n-1, где n — число узлов WSFC. Чтобы изменить пороговые значения сбоя для заданной группы доступности, используйте консоль диспетчера отработки отказа WSFC.

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

  • Необходимо подключиться к экземпляру сервера, на котором размещена первичная реплика.

Безопасность

Разрешения

Задача Разрешения
Настройка гибкой политики отработки отказа для новой группы доступности Требуется членство в фиксированной роли сервера sysadmin и одно из разрешений: CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP или CONTROL SERVER.
Изменение политики существующей группы доступности Необходимо разрешение ALTER AVAILABILITY GROUP для группы доступности, разрешение CONTROL AVAILABILITY GROUP, разрешение ALTER ANY AVAILABILITY GROUP или разрешение CONTROL SERVER.

Использование Transact-SQL

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

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

  2. Для новой группы доступности используйте инструкцию Transact-SQL CREATE AVAILABILITY GROUP. При добавлении или изменении существующей группы доступности воспользуйтесь инструкцией Transact-SQL ALTER AVAILABILITY GROUP.

    • Чтобы установить уровень условий перехода на другой ресурс, используйте параметр FAILURE_CONDITION_LEVEL = n , где n — это целое число от 1 до 5.

      Например, следующая инструкция Transact-SQL изменяет уровень условия сбоя для существующей группы доступности, AG1, до уровня 1:

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1);  
      

      Эти целочисленные значения следующим образом соответствуют уровням условий сбоя.

      Значение Transact-SQL Level Автоматическая отработка отказа запускается при...
      1 Один При остановке работы сервера. Служба SQL Server останавливается из-за отработки отказа или перезапуска.
      2 Два При отсутствии ответа от сервера. Удовлетворяется любое условие более низкого значения, служба SQL Server подключена к кластеру, а пороговое значение ожидания проверки работоспособности превышено, либо текущая первичная реплика находится в неисправном состоянии.
      3 Три В случае критической ошибки сервера. Удовлетворяется любое условие более низкого значения, или возникает внутренняя критическая ошибка сервера.

      Это уровень, заданный по умолчанию.
      4 Четыре В случае ошибки сервера средней значимости. Удовлетворяется любое условие более низкого значения, или возникает ошибка сервера средней значимости.
      5 Пять При любых подходящих условиях сбоя. Удовлетворяется любое условие более низкого значения, или возникает подходящее условие сбоя.

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

    • Чтобы настроить пороговое значение ожидания проверки работоспособности, используйте параметр HEALTH_CHECK_TIMEOUT = n, где n является целым числом от 15000 миллисекунд (15 секунд) до 4294967295 миллисекунд. Значение по умолчанию — 30 000 миллисекунд (30 секунд)

      Например, следующая инструкция Transact-SQL изменяет пороговое значение времени ожидания проверки работоспособности существующей группы доступности, AG1, на значение 60 000 миллисекунд (одна минута).

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);  
      

Использование PowerShell

Настройка гибкой политики отработки отказа**

  1. Установите значение по умолчанию (cd) равным серверу экземпляра, на котором размещена первичная реплика.

  2. При добавлении реплики доступности в группу доступности воспользуйтесь командлетом New-SqlAvailabilityGroup. При изменении существующей реплики доступности воспользуйтесь командлетом Set-SqlAvailabilityGroup.

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

      Значение Level Автоматическая отработка отказа запускается при...
      OnServerDown Один При остановке работы сервера. Служба SQL Server останавливается из-за отработки отказа или перезапуска.
      OnServerUnresponsive Два При отсутствии ответа от сервера. Удовлетворяется любое условие более низкого значения, служба SQL Server подключена к кластеру, а пороговое значение ожидания проверки работоспособности превышено, либо текущая первичная реплика находится в неисправном состоянии.
      OnCriticalServerError Три В случае критической ошибки сервера. Удовлетворяется любое условие более низкого значения, или возникает внутренняя критическая ошибка сервера.

      Это уровень, заданный по умолчанию.
      OnModerateServerError Четыре В случае ошибки сервера средней значимости. Удовлетворяется любое условие более низкого значения, или возникает ошибка сервера средней значимости.
      OnAnyQualifiedFailureConditions Пять При любых подходящих условиях сбоя. Удовлетворяется любое условие более низкого значения, или возникает подходящее условие сбоя.

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

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

      Set-SqlAvailabilityGroup `
       -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg `
       -FailureConditionLevel OnServerDown  
      
    • Чтобы задать пороговое значение времени ожидания проверка работоспособности, используйте HealthCheckTimeout параметр n, где n — целое число от 15000 миллисекунд (15 секунд) до 4294967295 миллисекунд. Значение по умолчанию — 30 000 миллисекунд (30 секунд).

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

      Set-SqlAvailabilityGroup `
       -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG `
       -HealthCheckTimeout 120000  
      

Примечание

Чтобы просмотреть синтаксис командлета, используйте Get-Help командлет в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.

Настройка и использование поставщика SQL Server PowerShell

См. также:

Обзор групп доступности AlwaysOn (SQL Server)
Режимы доступности (группы доступности AlwaysOn)
Отработка отказа и режимы отработки отказа (группы доступности AlwaysOn)
Отказоустойчивая кластеризация Windows Server (WSFC) с SQL Server
Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)