Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В экземпляре отказоустойчивого кластера SQL Server (FCI) только один узел может принадлежать группе ресурсов отказоустойчивого кластера Windows Server (WSFC). Клиентские запросы в FCI обслуживаются через этот узел. В случае сбоя и неудачного перезапуска право владения группой переносится на другой узел WSFC в FCI. Этот процесс называется переключением при отказе. SQL Server повышает надежность обнаружения сбоев и предоставляет гибкую политику отработки отказа.
Отказоустойчивый кластерный экземпляр SQL Server зависит от базовой службы WSFC для обнаружения отказа и выполнения переключения на резервный узел. Таким образом, два механизма определяют поведение отработки отказа для FCI: первый — это собственные функции WSFC, а последний — функциональные возможности, добавленные программой установки SQL Server.
Кластер WSFC поддерживает конфигурацию кворума, которая обеспечивает наличие уникального целевого узла при автоматическом переключении при отказе. Служба WSFC определяет, находится ли кластер в состоянии оптимального кворума в любой момент времени, и в зависимости от этого переводит группу ресурсов в сетевой или автономный режим.
Активный экземпляр SQL Server периодически передает группе ресурсов WSFC набор диагностических данных о компонентах по выделенному соединению. Группа ресурсов WSFC поддерживает политику переключения при отказе, которая определяет условия сбоя, запускающие перезапуск и переключение при отказе.
В этом разделе описывается второй из представленных выше механизмов. Дополнительные сведения о поведении WSFC при настройке кворума и обнаружении работоспособности см. в статье Режимы кворума и конфигурация голосования WSFC (SQL Server).
Внимание
Автоматический переход на другой ресурс с участием FCI не допускается в группе доступности AlwaysOn. Однако в группе доступности Always On допускаются ручные переключения при отказе на FCI и с FCI.
Обзор политики аварийного переключения
Процесс переключения при отказе можно разделить на следующие этапы:
Мониторинг состояния работоспособности
Для FCI отслеживаются три типа состояния работоспособности.
Состояние службы SQL Server
Служба WSFC отслеживает начальное состояние службы SQL Server на активном узле FCI, чтобы обнаружить момент ее остановки.
Скорость ответа экземпляра SQL Server
В момент запуска SQL Server служба WSFC использует библиотеку ресурсов компонента ядра СУБД SQL Server для создания нового соединения в отдельном потоке, который используется исключительно для мониторинга состояния работоспособности. Это гарантирует наличие в экземпляре SQL Server необходимых ресурсов для сообщения о собственном состоянии работоспособности в случае высокой загрузки. С помощью этого выделенного соединения SQL Server запускает системную хранимую процедуру sp_server_diagnostics (Transact-SQL) в режиме повторения для периодической передачи сведений о состоянии работоспособности компонентов SQL Server в библиотеку ресурсов.
Библиотека ресурсов DLL определяет отзывчивость экземпляра SQL с помощью тайм-аута проверки работоспособности. Свойство HealthCheckTimeout определяет, сколько времени библиотека ресурсов будет ожидать получения данных от хранимой процедуры sp_server_diagnostics до того, как экземпляр SQL Server будет признан не отвечающим на запросы службы WSFC. Это свойство настраивается с помощью T-SQL, а также в оснастке «Диспетчер отказоустойчивости кластеров». Дополнительные сведения см. в разделе Configure HealthCheckTimeout Property Settings. В следующих пунктах описывается влияние этого свойства на значений времени ожидания и интервала повтора.
Библиотека ресурсов вызывает хранимую процедуру sp_server_diagnostics и устанавливает интервал повтора равным одной трети значения параметра HealthCheckTimeout.
Если хранимая процедура sp_server_diagnostics выполняется слишком медленно или не возвращает данные, библиотека ресурсов будет ожидать в течение времени, равного интервалу HealthCheckTimeout, а затем сообщит службе WSFC об отсутствии ответа экземпляра SQL Server.
Если выделенное соединение теряется, то библиотека ресурсов повторяет подключение к экземпляру SQL Server в течение интервала, указанного в свойстве HealthCheckTimeout, а затем сообщает службе WSFC об отсутствии ответа экземпляра SQL Server.
Диагностика компонентов SQL Server
Системная хранимая процедура sp_server_diagnostics периодически собирает диагностические данные о компонентах в экземпляре SQL Server. Собранные диагностические данные отображаются в виде строки для каждого из следующих компонентов и передаются в вызывающий поток.
система
ресурс
процесс запроса
io_subsystem
события
Система, ресурс и компоненты процесса запроса используются для обнаружения сбоя. Подсистема io_subsytem и компоненты событий используются только для диагностики.
Каждый набор строк данных также записывается в журнал диагностики кластеров SQL Server. Дополнительные сведения см. в статье «Просмотр и чтение журнала диагностики экземпляра отказоустойчивого кластера».
Совет
Хранимая процедура sp_server_diagnostics применяется в технологии SQL Server AlwaysOn, но также доступна для использования в любом экземпляре SQL Server для обнаружения и устранения проблем.
Определение сбоев
Библиотека ресурсов компонент ядра СУБД SQL Server определяет, является ли обнаруженное состояние работоспособности условием сбоя, используя свойство FailureConditionLevel. Свойство FailureConditionLevel определяет, какие обнаруженные состояния работоспособности приводят к перезапуску или переключению при отказе. Доступно несколько уровней настройки: от отсутствия автоматического перезапуска или переключения при отказе до автоматического перезапуска или переключения при отказе при любых возможных условиях отказа. Дополнительные сведения о настройке этого свойства см. в разделе Configure FailureConditionLevel Property Settings.
Условия сбоя устанавливаются по прогрессирующей шкале. Каждый уровень, с 1 по 5, включает все условия предыдущих уровней, а также собственные дополнительные условия. Это означает, что на каждом следующем уровне увеличивается вероятность аварийного переключения или перезапуска. Уровни условий сбоя описаны в следующей таблице.
См. статью sp_server_diagnostics (Transact-SQL), поскольку эта системная хранимая процедура играет важную роль при определении уровней условий сбоя.
| Уровень | Условие | Описание |
|---|---|---|
| 0 | Без автоматического переключения при сбое или перезапуска | Указывает, что ни при каких сбоях аварийное переключение или перезапуск не будут запускаться автоматически. Этот уровень предназначен только для обслуживания системы. |
| 1 | Переключение при отказе или перезапуск при отказе сервера | Указывает, что при возникновении следующего условия будет инициирован перезапуск сервера или переключение на резервный сервер: Служба SQL Server остановлена. |
| 2 | Переключение на резервный сервер или перезапуск, если сервер не отвечает | Указывает, что будет инициирован перезапуск сервера или переключение на резервный сервер при возникновении любого из следующих условий. Служба SQL Server остановлена. Экземпляр SQL Server не отвечает (библиотеке ресурсов не удается получить данные от процедуры sp_server_diagnostics в течение времени, заданного HealthCheckTimeout). |
| 3* | Переключение на резервный сервер или перезапуск при критических ошибках сервера | Указывает, что будет инициирован перезапуск сервера или переключение на резервный сервер, если возникает любое из следующих условий: Служба SQL Server остановлена. Экземпляр SQL Server не отвечает (библиотеке ресурсов не удается получить данные от процедуры sp_server_diagnostics в течение времени, заданного HealthCheckTimeout). Системная хранимая процедура sp_server_diagnostics возвращает сообщение "системная ошибка". |
| 4 | Переключение на резерв или перезапуск при ошибках сервера средней тяжести | Указывает, что будет инициирован перезапуск сервера или переключение на резервный сервер при возникновении любого из следующих условий: Служба SQL Server остановлена. Экземпляр SQL Server не отвечает (DLL ресурса не может получить данные из sp_server_diagnostics в течение интервала, заданного параметром HealthCheckTimeout). Системная хранимая процедура sp_server_diagnostics возвращает сообщение "системная ошибка". Системная хранимая процедура sp_server_diagnostics возвращает сообщение "ошибка ресурса". |
| 5 | Переключение при отказе или перезапуск при любых допустимых условиях отказа | Указывает, что будет инициирован перезапуск сервера или переключение на резервный сервер, если возникает любое из следующих условий: Служба SQL Server остановлена. Экземпляр SQL Server не отвечает (DLL-файл ресурса не может получить данные из sp_server_diagnostics в течение времени, заданного параметром HealthCheckTimeout). Системная хранимая процедура sp_server_diagnostics возвращает сообщение "системная ошибка". Системная хранимая процедура sp_server_diagnostics возвращает сообщение "ошибка ресурса". Системная хранимая процедура sp_server_diagnostics возвращает сообщение "ошибка обработки запроса". |
*Значение по умолчанию
Действия при сбоях
После обнаружения одного или нескольких сбоев то, как служба WSFC реагирует на эти сбои, зависит от состояния кворума WSFC и параметров перезапуска и переключения при отказе группы ресурсов FCI. Если FCI утратил кворум WSFC, то весь FCI переводится в автономный режим, и FCI теряет высокую доступность. Если FCI по-прежнему сохраняет свой кворум WSFC, служба WSFC может в ответ сначала попытаться перезапустить отказавший узел, а затем выполнить переключение при отказе, если попытки перезапуска окажутся неуспешными. Параметры перезапуска и переключения при отказе настраиваются в оснастке «Диспетчер отказоустойчивых кластеров». Дополнительные сведения об этих параметрах см. в статье <Ресурс> Свойства: вкладка "Политики".
Дополнительные сведения о поддержании работоспособности кворума см. в статье Режимы кворума и конфигурация голосования WSFC (SQL Server).