Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе объясняется, как настроить гибкую политику автоматического переключения для группы доступности AlwaysOn, используя Transact-SQL или PowerShell в SQL Server 2014. Гибкая политика переключения на отказ обеспечивает детальный контроль над условиями, которые вызывают автоматическое переключение на отказ для группы доступности. Изменив условия сбоя, которые активируют автоматическое переключение при отказе, и частоту проверок работоспособности, можно увеличить или уменьшить вероятность автоматического переключения при отказе для поддержки SLA по высокои доступности.
> [!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
Настройка гибкой политики отказоустойчивости
Подключитесь к экземпляру сервера, на котором находится первичная реплика.
Чтобы создать новую группу доступности, используйте инструкцию CREATE AVAILABILITY GROUPTransact-SQL. Если вы изменяете существующую группу доступности, используйте инструкцию ALTER AVAILABILITY GROUPTransact-SQL.
Чтобы задать уровень фаиловера, используйте параметр FAILURE_CONDITION_LEVEL = n, где n — целое число от 1 до 5.
Например, следующая инструкция Transact-SQL изменяет уровень условия сбоя существующей группы доступности
AG1, устанавливая его на первый уровень.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 является целым числом от 15000 миллисекунд (15 секунд) до 4294967295 миллисекундах. Значение по умолчанию — 30000 миллисекунд (30 секунд)
Например, следующая инструкция Transact-SQL изменяет пороговое значение времени ожидания проверки работоспособности существующей группы доступности,
AG1, на 60 000 миллисекунд (одна минута).ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
Использование PowerShell
Чтобы настроить гибкую политику резервирования**
Задайте экземпляр сервера, на котором размещена первичная реплика, в качестве значения по умолчанию (
cd).При добавлении реплики доступности в группу доступности используйте командлет
New-SqlAvailabilityGroup. При изменении реплики доступности, уже существующей, используйте командлетSet-SqlAvailabilityGroup.Чтобы задать уровень условия отказоустойчивости, используйте параметр level, где уровень является одним из следующих значений:
Ценность Уровень Автоматическое переключение инициируется, если... OnServerDownОдин Сервер не работает. Служба SQL Server останавливается из-за переключения при сбое или перезапуска. OnServerUnresponsiveДва Сервер не отвечает. Любое условие меньшего значения удовлетворено, служба SQL Server подключена к кластеру и превышен порог времени ожидания проверки работоспособности, или текущая первичная реплика находится в состоянии сбоя. OnCriticalServerErrorТри При критической ошибке сервера. Любое условие меньшего значения удовлетворяется или возникает внутренняя критическая ошибка сервера.
Это уровень компонента , заданный по умолчанию.OnModerateServerErrorЧетыре При умеренной ошибке сервера. Любое условие с меньшей ценностью удовлетворено или возникает ошибка сервера средней степени. OnAnyQualifiedFailureConditionsПять При любых определённых условиях сбоя. Любое менее значительное условие выполняется или наступает квалифицируемое условие сбоя. Дополнительные сведения о уровнях условий отработки отказа см. в статье "Гибкая политика отработки отказа" для автоматического восстановления группы доступности (SQL Server).
Например, следующая команда изменяет уровень условия отказа существующей группы доступности,
AG1, на первый уровень.Set-SqlAvailabilityGroup ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` -FailureConditionLevel OnServerDownЧтобы задать порог времени ожидания проверки работоспособности, используйте
HealthCheckTimeoutпараметр n, где n является целым числом от 15000 миллисекунд (15 секунд) до 4294967295 миллисекундах. Значение по умолчанию — 30000 миллисекунд (30 секунд).Например, следующая команда изменяет порог времени ожидания проверки работоспособности существующей группы доступности на
AG1120 000 миллисекунд (две минуты).Set-SqlAvailabilityGroup ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` -HealthCheckTimeout 120000
Замечание
Чтобы просмотреть синтаксис командлета, в среде SQL Server PowerShell используйте командлет Get-Help. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.
Настройка и использование поставщика SQL Server PowerShell
См. также
Общие сведения о группах доступности AlwaysOn (SQL Server)
Режимы доступности (группы доступности AlwaysOn)
Переключение и режимы переключения (группы доступности AlwaysOn)
Отказоустойчивая кластеризация Windows Server (WSFC) с использованием SQL Server
Политика отработки отказа для экземпляров отказоустойчивого кластера
sp_server_diagnostics (Transact-SQL)