Ошибка EXCEPTION_ACCESS_VIOLATION в Microsoft SQl Server

microsoft sql server

Не наткнулся в интернете на описание ошибки для Microsoft SQl Server 2019 вида и решил написать небольшую статью об этом.

Process 60 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process

Само собой, проблема решается весьма просто. Если покопаться в интернете, то найдешь всё что угодно, кроме, собственно говоря, описания данной ошибки относительно MS SQL 2019 и последующего решения.

Ошибка EXCEPTION_ACCESS_VIOLATION в Microsoft SQl Server

Итак, дано: свежий сервер на базе Windows 2019 и свежая же версия MS SQL 2019. Процесс тестирования нагрузки не выдает никаких ошибок. Ошибок нет в профайлере и при использовании ряда клиентов, но перенос нагрузки в бой больно отдаётся массовыми жалобами пользователей и появлением в логе сервера ошибки вида Process 60 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process. Логи достаточно подробные. Плюс копию сервер любезно скидывает в виде дампа в директорию логов согласно текущим настроек. Само собой, код ошибки может меняться, что ничуть не даёт понимания ситуации, а программисты сбойного exe начинают бить себя пяткой в грудь и утверждать, что везде и всюду всё работает как надо. Гвоздём программы идёт утверждение, что на MS SQL 2017 точно всё работает.

РЕКОМЕНДУЕМ:
Как установить Memcached на сервер Ubuntu

Анализ аналогичных ошибок по предыдущим версиям говорит о том, что сервер явно требуется обновить. Что ж, так и поступаем — запускаем процесс обновления, просим людей покинуть программу и пару раз перезагружаем.

А далее наступает самое интересное: в работе 3 сервера. После обновления двое из них получают версию 15.0.4013.40 и на них ошибка исчезает, а на третьем иная версия — 15.0.2000.5, и на нём по прежнему сыпятся данные ошибки. Само собой, мозг, натренированный на ловлю ошибок, понимает, что так не бывает, но прямой запрос с проблемного сервера к обновлениям MS утверждает обратное… Отдельно масла в огонь подливает то, что в работе в качестве сервера используется бесплатная серверная операционная система Microsoft Windows Hyper-V 2019, которая, как известно, всегда идёт в режиме Core.

Итак, начинаем копать интернет еще глубже. Ресурс Обновления SQL Server подсказывает, что хорошо бы накатить Cummulative update версии 2 (далее CU2) и тоже выводит нужную версию, а Майкрософт любезно предлагает скачать (по ссылке полный список текущих обновлений для сервера) нужное обновление.

Итак, версия 15.0.2000.5 — это SQL 2019 RTM. А 15.0.4013.40 — версия после установки CU2. Вот только обновление скачано, но не ставится. Запуск — распаковка и тишина. Не забываем, у нас Core-версия ОС, простые способы тут не всегда работают. И папка с распакованными файлами автоматически исчезает. Да и старые методы вида SQLServer2019-KB4536075-x64.exe /extract:«d:\CU2» — не работают

Как обойти проблему: запускаем установку на GUI системе. Например, на Windows 10. После распаковки появляется стандартное меню установки хотфикса. Оно не особо интересно, кроме самого факта, что папка с временными файлами остается там, куда она была распакована.

Копируем эту папку на наш сервер (Через RDP либо по сети — после Install-WindowsFeature -Name «FS-FileServer<i></i>» ) и запускаем установку. Строка для запуска установки проста:

  • ACTION=Patch — установка хотфикса
  • ALLINSTANCES — ставим на все инстансы
  • QUIET — без выдачи прогресса. И только с этой опцией будет работать в Core-режиме
  • IAcceptSQLServerLicenseTerms — соглашаемся с пользовательским соглашением

РЕКОМЕНДУЕМ:
Защита почтового сервера без антивируса

Собственно, на этом всё. Я надеюсь вы смогли решить проблему с ошибкой в  EXCEPTION_ACCESS_VIOLATION в Microsoft SQl Server.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий