Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_MASTER_CORRUPT 1С:Предприятие и СУБД

Восстановление системной базы данных master в MSSQL после аппаратного сбоя

Обновлено: 26.08.2026 · Официальная документация ↗

Повреждение или потеря системной базы данных master приводит к полной неработоспособности сервера:

  • Служба MSSQLSERVER не запускается и аварийно завершает работу сразу после старта;
  • В Windows Event Viewer регистрируется ошибка Cannot recover the master database. SQL Server is unable to run. (Error 3417);
  • Файлы master.mdf или mastlog.ldf повреждены в результате аппаратного сбоя накопителя.

1. Запуск экземпляра SQL Server в однопользовательском режиме (-m)

Для восстановления базы master экземпляр должен быть запущен с параметром конфигурации -m (Single-User Mode) из командной строки администратора:

-- Остановка службы (если она пытается стартовать)
net stop MSSQLSERVER

-- Запуск экземпляра в режиме Single-User с ограничением подключения через SQLCMD
"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -c -m"SQLCMD"

2. Подключение через SQLCMD и запуск восстановления

Откройте второе окно командной строки с правами администратора:

sqlcmd -S . -E

Выполните команду восстановления базы master:

RESTORE DATABASE [master] 
FROM DISK = N'E:\Backup\System\master_Full.bak' 
WITH REPLACE;
GO

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

3. Запуск службы в штатном режиме

net start MSSQLSERVER

4. Что делать, если бэкапа базы master нет (Rebuild System Databases)

Если бэкап master отсутствует, пересоздайте системные базы с дистрибутива:

Setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="DOMAIN\Administrator" /SAPWD="StrongP@ssw0rd!"

После пересоздания потребуется заново смонтировать все пользовательские базы (Attach Database) и воссоздать логины.

💡 Практика специалистов: Всегда настраивайте автоматический ежедневный бэкап системных баз данных (master, msdb, model) в отдельный каталог. Размер резервной копии master составляет считанные мегабайты, но экономит часы простоя при катастрофах.

Частые вопросы (FAQ)

Почему при попытке восстановить master в SSMS возникает ошибка?

Базу master невозможно восстановить через стандартный графический интерфейс SSMS в обычном режиме работы сервера, так как база постоянно открыта и заблокирована всеми процессами движка SQL Server.

Теряются ли логины и серверные триггеры при восстановлении master из старого бэкапа?

Да, восстанавливается состояние метаданных на момент создания бэкапа. Все логины, созданные позже, придется восстановить вручную или синхронизировать SID через sp_change_users_login.

Зачем указывать параметр -m"SQLCMD" при запуске sqlservr.exe?

Параметр -m открывает ровно одно административное подключение. Указание 'SQLCMD' гарантирует, что это единственное соединение займет консольная утилита восстановления, а не фоновая служба Windows или сторонний агент мониторинга.

Как восстановить базу master для именованного экземпляра (Named Instance)?

Запустите sqlservr.exe с ключом -s: sqlservr.exe -c -m"SQLCMD" -s INSTANCENAME, а подключение в sqlcmd выполните как: sqlcmd -S .\INSTANCENAME -E.

Полезные материалы
Рекомендуем