Не запускается служба MSSQL 2019 после обновления

· Обновлено: 26.07.2026

 

И так, вводные данные:

Обновили сервер MSSQL 2019 и получаем что служба не стартует

В ErrorLog такая картина

2026-07-25 23:47:45.52 spid24s Service Broker manager has started.
2026-07-25 23:47:45.76 spid9s Database 'master' is upgrading script 'msdb110_upgrade.sql' from level 251660405 to level 251660420.
2026-07-25 23:47:45.76 spid9s ----------------------------------
2026-07-25 23:47:45.76 spid9s Starting execution of PRE_MSDB.SQL
2026-07-25 23:47:45.76 spid9s ----------------------------------
2026-07-25 23:47:45.86 spid9s -----------------------------------------
2026-07-25 23:47:45.86 spid9s Starting execution of PRE_SQLAGENT100.SQL
2026-07-25 23:47:45.86 spid9s -----------------------------------------
2026-07-25 23:47:45.88 spid9s Configuration option 'allow updates' changed from 1 to 1. Run the RECONFIGURE statement to install.
2026-07-25 23:47:45.88 spid9s Configuration option 'allow updates' changed from 1 to 1. Run the RECONFIGURE statement to install.
2026-07-25 23:47:46.22 spid9s Error: 1105, Severity: 17, State: 2.
2026-07-25 23:47:46.22 spid9s Could not allocate space for object 'dbo.upgrade_perms' in database 'msdb' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.


Суть проблемы:

При запуске SQL Server пытается обновить системные базы данных (master и msdb) до актуальной версии (скрипт msdb110_upgrade.sql). В процессе обновления ему нужно создать временные объекты в файле msdb.mdf. Он не может этого сделать, потому что:


Диск, на котором лежит msdb.mdf, полностью заполнен (или на нем нет места) или файл msdb.mdf не настроен на автоматический рост (autogrowth), либо он включен, но на диске нет места для расширения.


Из-за этого база данных master переводится в офлайн, и весь экземпляр SQL Server падает с ошибкой 3417.


В нашем случае была проблема не в нехватке места на диске, а в том, что файл msdb.mdf не может расшириться, даже если на диске есть место.


Решение:

Запускаем sqlserver с флагом -T902


Открываем cms от имени Администратора

"C:\Program Files\Microsoft SQL Server\MSSQL15.LOCALSQL\MSSQL\Binn\sqlservr.exe" -sLOCALSQL -T902


В новом окне cmd которое тоже запущено от имени Администратора

sqlcmd -S .\LOCALSQL -E


В этом окне нужно увеличить размер msdb и снять ограничения

-- Переводим msdb в однопользовательский режим
ALTER DATABASE msdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

-- Увеличиваем файл до 1 ГБ, снимаем ограничение на максимальный размер, включаем авторасширение
ALTER DATABASE msdb MODIFY FILE (
NAME = MSDBData,
SIZE = 1024MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
);
GO

-- Возвращаем msdb в многопользовательский режим
ALTER DATABASE msdb SET MULTI_USER;
GO


Все


После этого завершаем работу sqlcmd и sqlserver.exe нажимаем Ctrl+C -> Y


Далее идем в "Службы" и стартуем нашу службу "SQL Сервер"

Поделиться: