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