Агент SQL Server, инициирующий самоуничтожение


9

В течение последнего месяца один из моих серверов сталкивался с проблемами с агентом SQL Server. Он останавливается автоматически с ошибкой ниже, которая происходит случайно:

Выходной файл агента Sql
[097] Обнаружена утечка памяти [204 байта]
Исключение 5 обнаружено в строке 403 файла e: \ sql9_sp2_t \ sql \ komodo \ src \ core \ sqlagent \ src \ alertster.cpp. SQLServerAgent инициирует самоуничтожение

Я погуглил эту ошибку, но не получил много информации об этом. SQL Server и агент работают с одной и той же учетной записью домена; однако проблема заключается только в службе агента SQL Server.

Я также не могу увидеть службу агента SQL Server в диспетчере конфигурации SQL Server. Я проверил журнал ошибок SQL Server и журнал событий Windows, но не обнаружил никаких подозрительных действий.

Мои настройки памяти настроены правильно. Сервер имеет 32 ГБ ОЗУ, а SQL Server назначен максимальный объем памяти в 26 ГБ.

Детали системы:

  • SQL Server 2012 с пакетом обновления 2 (SP2), стандартная версия 11.0.5058, 64-разрядная версия
  • Windows Server 2008 R2 Ent Edition, 64-разрядная версия
  • Предназначен для SQL Server (на сервере не запускаются другие приложения)
  • Сервер был обновлен несколько месяцев назад с SQL Server 2005 EE до 2012 SE.
  • Мы не используем сервер пересылки событий .

Я также проверил базу данных msdb . Запустил checkdb на нем, и он успешно завершился без каких-либо ошибок. Мне нужна ваша помощь в исправлении двух вещей:

  1. Чтобы исправить случайную остановку службы агента SQL Server
  2. Чтобы добавить службу агента SQL Server в диспетчер конфигурации SQL Server

У нас есть стороннее программное обеспечение для мониторинга, поэтому мы немедленно получаем уведомление, если служба агента останавливается. Сейчас мы просто перезапускаем сервис. Но мы хотим найти основную причину.

Я выполнил следующий запрос, предложенный Шоном Галларди, и получил 95 строк назад. Я не знаю, как интерпретировать результат.

select * 
from sys.dm_os_loaded_modules 
where name not like '%microsoft%'

К сожалению, я не могу опубликовать результаты по соображениям безопасности.

Пока я не нашел решение этой проблемы, я добавил попытки повторения к агенту SQL Server, чтобы он мог автоматически перезапускаться при остановке.


Когда агент убит, вы можете попасть на сервер и проверить использование файла подкачки? Есть элементы Connect, связанные с этим, вызванным исчерпанием файла подкачки различными приложениями (включая HyperBac).
Коди Кониор

Я проверю это, когда это случится снова.
SQLPRODDBA

Когда вы обновили SQL Server 2005 EE до SQL Server 2012 SE, вы сделали обновление на месте? Или вы сделали совершенно новую версию SQL Server? Я спрашиваю, потому что в начале 2000-х годов я столкнулся с несколькими сбоями с обновлениями на месте, которые были решены путем полного удаления папки и переустановки SQL Server в пустую папку. (Да, это было неприятно.)
RLF

Ответы:


1

Поскольку вы недавно обновили несколько месяцев назад с SQL Server 2005 EE до 2012 SE, вы должны сохранить и очистить журналы событий, поскольку SqlAgent может аварийно завершить работу, когда он видит идентификаторы журналов событий из более старой сборки SQL Server. Например, агент может аварийно завершить работу, потому что он читает событие, зарегистрированное сборкой SQL Server ранее, чем текущая сборка, которая содержит только данные со строкой вставки ОДИН, и агент попытается отформатировать ее с использованием самой последней информации о ресурсе, требующей ДВУХ строк. Это может привести к краткой утечке памяти непосредственно перед тем, как она отключится, поскольку для строки, в которую он пытается распечатать, когда происходит сбой, выделяется буфер.

Что касается службы агента, не указанной в диспетчере конфигурации, существует несколько возможностей: https://support.microsoft.com/en-us/kb/941823

Убедитесь, что вы используете Configuration Manager 2012

Вы можете попробовать перестроить хранилище WMI: https://blogs.technet.microsoft.com/askperf/2009/04/13/wmi-rebuilding-the-wmi-repository/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.