Как прекратить генерацию дампов SQL Server

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

По материалам статьи Esther Xin «Prevent SQL Server Dump Generation in Hot Cases: Common Ways & Scenarios»
14 ноября 2021г.
В этой статье будут описаны способы предотвращения создания дампа SQL Server для наиболее часто встречающихся видов исключений. В промышленной среде это позволит продержаться до решения проблемы, в случае, когда генерация дампов сильно мешает нормальной работе. Подразумевается, что у вас уже есть файл дампа, пригодный для расследования RCA. Также, вы должны быть уверены, что причиной создания дампов является одно и то же исключение, о чём говорит одинаковый стек вызовов для потока, приведшего к дампу.

В продуктиве, особенно когда SQL Server является частью кластера (SQL AG или FCI), в качестве быстрого решения для защиты от сбоев, вызванных процессом генерации дампа, поддержка Майкрософт может предложить рассмотреть возможность отключения процесса создания дампа.
Главной опасностью того, что файл дампа не будет генерироваться после того, как произойдёт исключение, является невозможность дальнейшего поиска и устранения проблем на основании содержащейся в дампе информации. Кроме того, само отключение возможности создания дампа не может избавить от возникновения исключения в процессе SQL Server. Применяя этот метод, будьте осторожны и учитывайте возможные риски, связанные с тем, что отсутствие дампов может ввести в заблуждение при оценке состояния сервера. Обязательно согласуйте отключение дампов со всеми заинтересованными сторонами, прежде чем вносить какие-либо изменения.
Конечно, увеличение тайм-аута проверки статуса сервера и тайм-аута проверки работоспособности может быть альтернативным вариантом реакции на череду дампов, но в типичном продуктиве в случае аварии, когда требуется быстрый отклик и быстрая отработка отказа, такой вариант не подходит (нежелательно ждать генерации дампа перед отработкой отказа или длительное создание дампа само может стать причиной отработки отказа).
Ниже показаны несколько флагов трассировки, которые позволяют отключить создание дампа в наиболее часто встречающихся случаях. В других случаях, следует обратиться к документации Майкрософт, которая описывает соответствующие флаги трассировки и поведение сервера после их включения.

1. Отключение non-yielding дампа

Следует помнить, что при включении этих трёх флагов трассировки (особенно 2542), вы могли бы получить другие дампы исключений SQL Server, но их создание будет предотвращено, поскольку это предписано флагом 2542. Однако не исключены случаи, когда вы все равно сможете увидеть дамп SQL Server, созданный, несмотря на включение всех трёх показанных далее флагов. Для решения подобных проблем, обратитесь к другим флагам трассировки, обсуждаемым в этом документе или в документации Майкрософт.

1260

Отключить дамп для всех non-yielding планировщиков

Startup | DBCC

3646

Не создавать дампы симптомов «symptom dumps»

Startup | DBCC

2542

Отключить дампы в sqldumper.exe

Startup | DBCC

2. Отключение дампа поврежденного индекса

11063

Не создавать дампы из-за невозможности найти строку в индексе

Startup | DBCC

3. Отключение latch timeout дампа

837

Не создавать дампы «latch timeout»

Startup | DBCC

4. Создавать только один файл дампа для триггера дампов

8026

Прерывать работу триггера дампов после генерации первого дампа

Startup | DBCC

5. Задать в реестре ограничение максимального числа генерируемых дампов

Для ограничения числа дампов можно внести изменения в ключи системного реестра Windows. По умолчанию значение ключей установлено в ноль (0), что означает бесконечное число генерируемых дампов. Если изменить значение на 1, максимальное число дампов будет равно одному. Счетчик сбрасывается при перезапуске службы SQL Server.
Ключи должны располагаться в следующей ветке реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\Setup

(внесите изменение в этот путь в соответствии с установленной версией)

Создайте следующие ключи:

MaxDumps (DWORD) value      --> поставить 1
MaxFullDumps (DWORD) value  --> поставить 1

6. Ещё о полезных флагах, без которых сервер может не работать:

Use Trace Flag 902 (TF902) to Bring Up Your SQL Service in Failed Post Upgrade Script

DISCLAIMER : THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Источник: https://habr.com/ru/post/589949/


Интересные статьи

Интересные статьи

Привет! Мы продолжаем проводить QIWI Server Party. На этот раз — 22 апреля (четверг). Обсудим сразу много полезных штук — продуктовую разработку и developer experience, спринты и инжен...
Наверно я не один такой, кто столкнулся с проблемой отсутствия границ окон в новых системах windows, ведь зачем-то их убрали с одним из обновлений. Спрашивают многие, а в...
Ваш сайт работает на 1С-Битрикс? Каждому клиенту вы даёте собственную скидку или назначаете персональную цену на товар? Со временем в вашей 1С сложилась непростая логика ценообразования и формирования...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
PowerShell Desired State Configuration (DSC) сильно упрощает работу по развертыванию и конфигурированию операционной системы, ролей сервера и приложений, когда у вас сотни серверов. Но пр...