
Агент SQL Server (SQL Server Agent) отвечает за выполнение запланированных заданий, резервное копирование, мониторинг и автоматизацию задач в среде Microsoft SQL Server. Когда служба не запускается, это напрямую влияет на стабильность работы серверов и выполнение критически важных процессов. Основная причина сбоя – неправильная конфигурация службы, проблемы с правами учетной записи или ошибки в параметрах подключения к экземпляру SQL Server.
Первым шагом при диагностике стоит проверить состояние службы SQL Server Agent в консоли Services.msc. Если запуск невозможен, необходимо убедиться, что тип запуска установлен на Automatic, а учетная запись, под которой работает агент, имеет права Log on as a service. Ошибка входа часто указывает на изменённый пароль или некорректные разрешения.
Если служба не запускается даже при корректных параметрах, следует проверить журнал ошибок SQLAgent.out и системный журнал Windows. Там можно обнаружить сведения о конфликте портов, отсутствии доступа к master-базе или проблемах с подключением к SQL Server. При наличии сообщения об ошибке “Unable to connect to server” важно убедиться, что основной экземпляр SQL Server активен и слушает тот же порт, что указан в конфигурации агента.
Нередко агент не стартует после обновлений Windows или SQL Server из-за повреждения зависимостей. В этом случае помогает восстановление служб SQL Server через SQL Server Configuration Manager и повторная регистрация компонентов с помощью команды sqlagent.exe -regserver. Для серверов с ограниченной безопасностью стоит дополнительно проверить настройки Group Policy – они могут блокировать запуск служб от имени локальных учетных записей.
Чтобы предотвратить повторение подобных ошибок, рекомендуется настроить мониторинг состояния SQL Server Agent и автоматическое уведомление при его остановке. Это позволит оперативно реагировать на сбои и сохранять контроль над выполнением запланированных задач в инфраструктуре SQL Server.
Проверка состояния службы SQL Server Agent в диспетчере служб Windows
Чтобы убедиться, что служба SQL Server Agent активна, откройте консоль services.msc через окно «Выполнить» (Win + R) и найдите элемент с именем SQL Server Agent (MSSQLSERVER) или аналогичный, если используется именованный экземпляр. В колонке «Состояние» должно отображаться значение «Выполняется».
Если агент не запущен, щёлкните правой кнопкой мыши по службе и выберите пункт Запустить. При ошибке запуска откройте вкладку Свойства и проверьте тип запуска – для автоматического старта следует установить значение Автоматически. Убедитесь, что в поле «Войти как» указан действующий системный или доменный аккаунт с правами на запуск служб SQL.
При подозрении на сбой используйте кнопку Зависимости, чтобы убедиться, что базовая служба SQL Server (MSSQLSERVER) запущена. Если она остановлена, агент не сможет стартовать. После корректировки зависимостей перезапустите SQL Server Agent и повторно проверьте состояние.
Для детальной диагностики откройте журнал событий Windows (раздел Система или Приложение) и отфильтруйте записи по источнику «SQLSERVERAGENT». Ошибки запуска, связанные с правами, отсутствием доступа к базе msdb или конфликтами портов, фиксируются именно там.
Анализ журнала событий Windows для выявления причин сбоя запуска

Ошибки с кодами 7000–7031 в разделе Система указывают на проблемы с зависимыми службами, отсутствием прав учётной записи или повреждёнными компонентами. Если агент не запускается из-за недоступного основного экземпляра SQL Server, в сообщении обычно присутствует фраза “The service did not respond to the start or control request in a timely fashion”.
В разделе Приложение обратите внимание на события с ID 103, 324 или SQLAGENT.EXE в описании – они часто связаны с некорректной конфигурацией учетных данных, конфликтом портов или повреждением файла SQLAGENT.OUT. Для проверки прав службы убедитесь, что учетная запись, под которой работает агент, имеет разрешение на вход в систему как служба и доступ к каталогу \MSSQL\Log.
Если агент прекращает запуск сразу после старта, включите дополнительное логирование через параметр -v в свойствах службы или временно запустите процесс вручную из командной строки:
sqlagent.exe -c -v – это позволит отследить ошибки в консоли и сопоставить их с событиями в журнале.
После устранения причин повторно проверьте журнал событий, чтобы убедиться в отсутствии новых ошибок. Систематическая проверка записей по времени запуска и корректное сопоставление их с действиями администратора – ключ к точной локализации проблемы.
Проверка учетной записи службы и прав доступа к системе
Служба SQL Server запускается под конкретной учетной записью Windows, и неправильные параметры этой записи часто становятся причиной отказа в запуске. В первую очередь необходимо уточнить, под какой учетной записью настроен запуск службы. Это можно сделать через оснастку services.msc – откройте свойства службы SQL Server (MSSQLSERVER) и перейдите на вкладку Вход в систему.
Если указана локальная или доменная учетная запись, убедитесь, что пароль актуален и не был изменён без обновления в параметрах службы. При использовании учетной записи Local System или Network Service проверьте, имеет ли она доступ к файлам базы данных и к системным каталогам, где размещены файлы master.mdf и errorlog.
Учетная запись должна обладать правом Log on as a service. Проверка выполняется через secpol.msc → Локальные политики → Назначение прав пользователя. Если этого права нет, добавьте учетную запись вручную и примените политику.
Также важно убедиться, что учетная запись имеет доступ на чтение и запись в папку DATA и каталог журналов SQL Server. Отсутствие прав на эти каталоги вызывает ошибки при инициализации экземпляра.
При работе в домене проверьте, не заблокирована ли учетная запись и не истёк ли срок действия пароля. Для диагностики можно временно задать запуск от имени Local System, чтобы исключить проблемы с доменными правами. После успешного теста верните исходные параметры и обновите пароль через консоль SQL Server Configuration Manager.
Проблемы с зависимыми службами SQL Server и способы их устранения
Для диагностики сначала проверяют статус зависимостей в консоли служб (services.msc) или с помощью PowerShell:
Get-Service -Name SQLSERVERAGENT -DependentServices
Если какая-либо из зависимых служб имеет статус Stopped или Disabled, агент не сможет стартовать. Важно убедиться, что каждая из них настроена на автоматический запуск и корректно функционирует. Ошибки обычно фиксируются в журнале событий Windows – раздел «Application» с источником SQLAGENT$InstanceName.
| Зависимая служба | Назначение | Типичные проблемы | Решение |
|---|---|---|---|
| SQL Server (MSSQLSERVER) | Основная служба, обеспечивающая доступ к базам данных | Ошибка входа, повреждение master.mdf, неверный аккаунт запуска | Проверить учётную запись службы, восстановить master через SQLCMD |
| SQL Server Browser | Определяет порты и экземпляры при подключении клиентов | Не запускается из-за конфликтов портов или политики безопасности | Разрешить порты UDP 1434, включить службу вручную |
| Windows Event Log | Регистрация системных и приложенческих событий | Служба остановлена или повреждён журнал событий | Пересоздать файлы журнала через PowerShell, запустить службу |
| RPC (Remote Procedure Call) | Связь между системными процессами | Ошибка при вызове COM или повреждённые зависимости DCOM | Проверить целостность системных компонентов: sfc /scannow |
Если зависимости исправны, но агент всё равно не запускается, стоит проверить параметр DependOnService в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT
Некорректные или устаревшие значения необходимо удалить. После этого служба обычно запускается без ошибок.
Оптимальная практика – задать все критические зависимости вручную с помощью команды:
sc config SQLSERVERAGENT depend= MSSQLSERVER/RpcSs/Eventlog
Это гарантирует корректную последовательность старта служб и предотвращает сбои агента SQL Server при загрузке системы.
Ошибки при подключении к базе данных msdb и их диагностика

База данных msdb используется агентом SQL Server для хранения заданий, расписаний и журналов выполнения. Если служба не может подключиться к msdb, агент не запустится. Основные причины связаны с повреждением базы, ошибками доступа или некорректными настройками подключения.
- Повреждение базы msdb – частая причина сбоя старта агента. Проверить состояние можно запросом:
DBCC CHECKDB('msdb') WITH NO_INFOMSGS, ALL_ERRORMSGS;Если выявлены ошибки, рекомендуется восстановление из резервной копии или пересоздание msdb с помощью скриптов из каталога
InstallSQL Server. - Недостаток прав у учетной записи службы – агент должен иметь роль
SQLAgentUserRoleили выше в базе msdb. Проверить это можно запросом:SELECT name FROM msdb.sys.database_principals WHERE name = 'DOMAIN\Имя_учетной_записи';
При отсутствии роли – добавить через:
EXEC sp_addrolemember 'SQLAgentOperatorRole', 'DOMAIN\Имя_учетной_записи';
- Несоответствие версии msdb и master – возникает после частичного восстановления или обновления. Проверить версии можно:
SELECT compatibility_level FROM sys.databases WHERE name IN ('master', 'msdb');Несовпадение требует пересоздания msdb из установочного пакета соответствующей версии SQL Server.
- Ошибка подключения при старте службы – в журнале событий Windows или в
SQLAGENT.OUTчасто встречается сообщение «Unable to connect to server (local); SQLServerAgent cannot start». Проверить строку подключения агента:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\SQLServerAgent
Значение параметра
SQLServerдолжно соответствовать имени экземпляра SQL Server. - Блокировка msdb при старте – возможна при зависших процессах или восстановлении. Проверить активные транзакции:
SELECT request_session_id, resource_type, resource_description FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID('msdb');Если блокировки удерживаются, необходимо завершить зависшие сессии командой
KILL [SPID].
Для диагностики полезно просматривать журнал SQL Server Error Log, файл SQLAGENT.OUT и системные представления sys.dm_exec_sessions и sys.dm_exec_requests. Эти источники позволяют определить, в какой момент агент теряет доступ к msdb и что вызывает сбой.
Проверка и восстановление поврежденных файлов конфигурации агента

Файлы конфигурации SQL Server Agent находятся в каталоге: C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Binn (где XX – версия SQL Server). Основной файл конфигурации – SQLAgent.out, а также файлы настроек SQLAGENT.INI и SQLAGENTPROFILE.INI.
Для проверки целостности используйте утилиту chkdsk или встроенный инструмент проверки системных файлов sfc /scannow. Запустите командную строку от имени администратора и выполните:
sfc /scannow
После завершения сканирования система отобразит список обнаруженных и исправленных ошибок. Если повреждения файлов конфигурации агента зафиксированы, перейдите к восстановлению.
Для восстановления поврежденных файлов конфигурации выполните следующие действия:
- Остановите службу SQL Server Agent через
services.mscили командой:
net stop SQLSERVERAGENT. - Скопируйте поврежденный файл в безопасное место для резервной копии.
- Восстановите файл из последней рабочей резервной копии или создайте новый, основываясь на шаблоне
SQLAGENT.INIиз другого идентичного сервера. - Проверьте права доступа: агент должен иметь полный доступ к папке конфигурации. Используйте команду:
icacls "путь_к_папке" /grant "NT SERVICE\SQLSERVERAGENT":F. - Запустите службу SQL Server Agent:
net start SQLSERVERAGENT.
После запуска проверьте журнал ошибок агента, расположенный по пути:
C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Log\SQLAGENT.OUT. Любые ошибки, связанные с конфигурацией, будут отображены с кодами и временем возникновения.
Если проблема повторяется, рекомендуется выполнить восстановление агента через команду установки:
Setup.exe /ACTION=Repair /INSTANCENAME=имя_инстанса, что гарантирует замену повреждённых конфигурационных файлов корректными версиями.
Настройка параметров запуска агента через SQL Server Configuration Manager

Откройте SQL Server Configuration Manager и в разделе SQL Server Services найдите службу SQL Server Agent (MSSQLSERVER) или соответствующую вашей инстанции. Проверьте состояние службы – оно должно быть Running. Если служба не запускается, перейдите к настройкам.
Кликните правой кнопкой мыши на службу агента и выберите Properties. Вкладка Service содержит ключевые параметры: Log on as и Startup type. Убедитесь, что выбран корректный аккаунт – для большинства сценариев рекомендуется использовать NT Service\SQLSERVERAGENT или специализированную доменную учетную запись с правами на выполнение задач SQL Server.
На вкладке Advanced проверьте параметр Startup type – рекомендуется установить Automatic для обеспечения запуска агента при старте сервера. Если используются специфические настройки производительности или безопасности, их можно задать через Advanced Properties, например, ограничение использования процессора.
В случае ошибок запуска агента, откройте журнал событий Windows (Event Viewer → Windows Logs → Application) и проверьте записи с источником SQLSERVERAGENT. Ошибки, связанные с учетной записью или правами доступа, требуют изменения учетных данных на вкладке Log On.
После внесения изменений нажмите Apply и перезапустите службу через контекстное меню Restart. Для проверки корректности запуска используйте команду в SQL Server Management Studio:
EXEC msdb.dbo.sp_help_job – она должна вернуть список заданий с состоянием агента.
Переустановка компонента SQL Server Agent без полной переустановки сервера

Для переустановки SQL Server Agent без полной переустановки SQL Server используется установка/удаление отдельных компонентов через инсталлятор SQL Server. Это позволяет восстановить службу агента при повреждении или некорректной работе.
- Подготовка:
- Скачайте установочный ISO или файлы инсталлятора, соответствующие версии вашего SQL Server.
- Убедитесь, что у вас есть права администратора на сервере.
- Остановите службу SQL Server Agent через
SQL Server Configuration Managerили командойnet stop SQLSERVERAGENT.
- Запуск инсталлятора:
- Запустите
setup.exeиз комплекта установки SQL Server. - Выберите «New SQL Server stand-alone installation or add features to an existing installation».
- На этапе выбора компонентов отметьте только «SQL Server Agent».
- Запустите
- Удаление компонента:
- В меню установки перейдите в раздел «Remove SQL Server features».
- Выберите экземпляр SQL Server, из которого нужно удалить SQL Server Agent.
- Снимите галочку с компонента «SQL Server Agent» и выполните удаление.
- Переустановка:
- После удаления вернитесь в раздел установки и снова добавьте компонент «SQL Server Agent».
- Завершите установку, следуя инструкциям инсталлятора.
- Проверка и запуск:
- Откройте
SQL Server Configuration Manager, убедитесь, что служба SQL Server Agent присутствует и имеет статус «Running». - При необходимости запустите службу вручную:
net start SQLSERVERAGENT. - Проверьте журнал событий Windows для подтверждения успешного запуска без ошибок.
- Откройте
Эта методика позволяет устранить ошибки запуска агента, связанные с повреждением файлов или конфигурации, без воздействия на сам сервер SQL и базы данных.
Вопрос-ответ:
Почему агент SQL Server не запускается после перезагрузки сервера?
Чаще всего проблема возникает из-за того, что служба агента настроена на автоматический запуск, но при старте сервера сталкивается с ошибкой авторизации или отсутствием необходимых зависимостей. Это может быть связано с изменением пароля учетной записи, под которой работает служба, или отключением связанных служб, таких как SQL Server. Решение включает проверку состояния службы через «Службы» Windows, проверку прав учетной записи и, при необходимости, повторную настройку запуска агента через SQL Server Configuration Manager.
Какие ошибки в журнале событий Windows могут указывать на причины отказа запуска агента SQL Server?
В журнале событий Windows могут появляться записи с кодами ошибок, такими как 1053, 1069 или 7000, которые указывают на проблемы с запуском службы. Эти записи обычно сопровождаются описаниями, например, «Ошибка входа в систему» или «Зависимая служба не запущена». Анализ таких записей помогает выявить причину сбоя — например, неверные учетные данные, отсутствие доступа к нужным файлам или повреждение конфигурационных файлов. После выявления причины следует исправить соответствующую настройку или восстановить доступ.
Как проверить, правильно ли настроена учетная запись для запуска агента SQL Server?
Для проверки следует открыть SQL Server Configuration Manager, выбрать службу SQL Server Agent и перейти в свойства службы. Там можно увидеть учетную запись, под которой выполняется запуск. Нужно удостовериться, что указанная учетная запись существует в системе, имеет действительный пароль и имеет необходимые права на доступ к папкам и базам данных. Если пароль изменён, его необходимо обновить. Также стоит проверить членство учетной записи в группах SQL Server и Windows, чтобы убедиться в наличии всех требуемых привилегий.
Какие шаги помогут восстановить работу агента SQL Server, если служба не запускается из-за повреждения конфигурации?
Сначала следует проверить журнал ошибок SQL Server Agent, чтобы найти точную причину отказа. Если проблема связана с конфигурационными файлами, можно попробовать восстановить их из резервной копии. При отсутствии резервных копий потребуется переустановка агента или восстановление через инструменты восстановления SQL Server. Также полезно проверить доступ к папкам SQL Server и базе данных msdb, так как агент зависит от этих ресурсов. После исправления конфигурации рекомендуется перезапустить службу и проверить её состояние через SQL Server Management Studio.
