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

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

  • Перед началом работы выполните следующие действия.

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

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

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

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

    Transact-SQL

    PowerShell

    ПримечаниеПримечание

    Гибкая политика отработки отказа для группы доступности не может быть настроена при помощи среды Среда SQL Server Management Studio.

Перед началом работы

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

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

  • Если в группе доступности превышен порог сбоя 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

      Уровень

      Автоматическая отработка отказа запускается при...

      1

      Один

      При остановке работы сервера. Служба SQL Server останавливается из-за отработки отказа или перезапуска.

      2

      Два

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

      3

      Три

      В случае критической ошибки сервера. Удовлетворяется любое условие более низкого значения, или возникает внутренняя критическая ошибка сервера.

      Это уровень, заданный по умолчанию.

      4

      Четыре

      В случае ошибки сервера средней значимости. Удовлетворяется любое условие более низкого значения, или возникает ошибка сервера средней значимости.

      5

      Пять

      При любых подходящих условиях сбоя. Удовлетворяется любое условие более низкого значения, или возникает подходящее условие сбоя.

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

    • Чтобы настроить пороговое значение ожидания проверки работоспособности, используйте параметр HEALTH_CHECK_TIMEOUT = n, где n является целым числом от 15 000 миллисекунд (15 секунд) до 4 294 967 295 миллисекунд. Значение по умолчанию — 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 принимает одно из следующих значений.

      Значение

      Уровень

      Автоматическая отработка отказа запускается при...

      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 является целым числом от 15 000 миллисекунд (15 секунд) до 4 294 967 295 миллисекунд. Значение по умолчанию — 30 000 миллисекунд (30 секунд).

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

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      
ПримечаниеПримечание

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

sp_server_diagnostics (Transact-SQL)

Основные понятия

Обзор групп доступности AlwaysOn (SQL Server)

Режимы доступности (группы доступности AlwaysOn)

Отработка отказа и режимы отработки отказа (группы доступности AlwaysOn)

Отказоустойчивая кластеризация Windows Server (WSFC) с SQL Server

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