Программа Failover Detection Utility компании Microsoft упрощает анализ отработки отказов и позволяет быстро определить их причину.

Диагностика отработок отказа группы доступности Always On SQL Server может быть сложной задачей, для решения которой требуется много времени, а в критической ситуации его обычно не хватает. Новая программа Failover Detection Utility от Microsoft проектировалась с целью сократить время просмотра таких источников, как журналы ошибок SQL, журналы кластера Windows, системные журналы, журналы расширенных событий работоспособности системы и журналы расширенных событий группы доступности.

Учитывая, что некоторые из этих журналов необходимо просматривать для каждой реплики группы доступности, потери времени увеличиваются еще больше. Компания Microsoft стремится отчасти сократить эти потери с помощью нового инструмента Failover Detection Utility, который требует минимальных усилий по настройке и обеспечивает сбор информации из каждого из перечисленных журналов. Затем выполняется сведение данных вместе, анализ и, наконец, подготовка отчета на основе всех журналов, где вы найдете сведения о случайных и неудачных отработках отказов группы доступности.

Программу Failover Detection Utility можно загрузить с сайта GitHub (https://github.com/Microsoft/tiger­toolbox/tree/master/Always-On/FailoverDetection). Среди прочих загружается файл JSON (configuration.json), в котором пользователь указывает место, где нужно централизованно хранить собранные файлы журналов из различных источников в репликах вашей группы доступности. Также необходимо предоставить список реплик в группе доступности и уровень политики отработки отказа для группы доступности. Пять уровней политики отработки отказа описаны в материале, который можно найти на сайте компании Microsoft (https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/flexible-automatic-failover-policy-availability-group?view=sql-server-2017#FClevel).

После того как файл JSON настроен, необходимо подготовить загрузочный канал, собрав различные файлы журналов и передав копии в каталог, указанный в файле JSON. Важно также отметить, что контекст безопасности вызывающего пользователя должен обеспечивать права доступа на пути, указанном в файле configuration.json. Завершив все шаги, вы запускаете процесс, выполняя загруженный исполняемый файл FailoverDetection.exe. Исполняемый файл предоставляет перечисленные ниже дополнительные параметры, которые определяют, как проходит сбор журналов по пути, указанном в файле JSON, а также составление отчетов.

  • Режим по умолчанию (параметры не предоставляются — поведение по умолчанию). Файл настроек загружен, и данные журналов собираются и анализируются. Выходные данные и анализ записываются в отчете, сохраненном в подкаталоге Results на пути, указанном в configuration.json.
  • Анализ. При использовании этого параметра инструмент работает только с журналами, уже размещенными на пути configuration.json. Выполняются все задачи режима по умолчанию, кроме копирования файлов журнала.
  • Вывод. Если установлен этот параметр, инструмент показывает результаты на командной консоли в дополнение к записи в файл отчета в папке Results.

На сегодня Failover Detection Utility обеспечивает обнаружение многих причин отработки отказов, в том числе плановые отработки отказов, внутренние проблемы SQL Server и неисправности, внешние по отношению к экземпляру SQL Server на сервере. Компания Microsoft предоставляет дополнительную информацию, в частности инструкции по настройке и сведения о конкретной причине анализа, выполняемого инструментом, на официальной странице программы по адресу: (https://blogs.msdn.microsoft.com/sql_server_team/failover-detection-utility-availability-group-failover-analysis-made-easy/).