Статья

MSSQL резервная копия системных баз (базы мастер)

8 Окт , 2022,
No Comments

master – требуется резервное копирование , дополнительно рекомендую холодную копию
msdb – требуется резервное копирования ,как и пользовательская база
model — рекомендую холодную копию
tempdb – не требуется резервное копирование

Для быстрого восстановления MSSQL сервера необходимо делать резервные копии системных баз master и model.

Если системная база данных разрушена (отсутствует) запустить MSSQL сервер невозможно.
Поэтому рекомендуется сделать «холодную» копию баз master и model. (master.mdf, mastlog.ldf, model.mdf, modellog.ldf). Делать часто их не нужно, а только после установки сервера, сервиспаков, патчей. Другими словами база должна быть от той версии сервера, на которой восстанавливается.
Регулярный backup баз master и model делается обычным образом.

Восстановление. Копируем на место поврежденных базу master. Убеждаемся что никто не подключится к MSSQL среверу раньше нас, например уже запущенная Management Studio. Запускаем сервер с ключем -m
> cd «C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn»
> sqlserv -m

Как вариант из графики, без командной строки

Запускаем cmd с правами администратора
Запускаем sqlcmd с правами администратора
Подключаемся к серверу
C:\Windows\system32>sqlcmd -E
1> RESTORE DATABASE MASTER FROM DISK=’D:\db\backup\master.bak’ WITH REPLACE;
2> go

После выполнения этой команды MSSQL остановится, надо запустить вручную без параметра -m
Аналогично восстанавливается база model.

Если нет холодной копии master.
(Смотреть документацию) Нужен дистрибутив.
Запустите перестройку системных баз данных
setup.exe /INSTANCENAME=MSSQLSERVER /ACTION=REBUILDDATABASE /SQLSYSADMINACCOUNTS=»BUILTIN\ADMINISTRATORS»

  • Недостаток относительно предыдущего метода — Очень долго
  • Можно попробовать взять master с другого сервера (not supported)