Восстановление и перенос системных баз MSSQL

Иногда встает необходимость восстановить или перенести системные базы данных MSSQL сервера в другое место. Разумеется речь пойдет о восстановлении баз из предварительно сделанного бэкапа. Если же бэкапов нет, то и восстанавливать то собственно и нечего.

 

 

Восстановление

Первое что нам потребуется, это восстановить базу данных master. Для восстановления базы данных master необходимо сначала остановить службу SQL Server, а затем запустить ее в однопользовательском режиме. Для этого нужно открыть командную строку, перейти в нужный каталог с установленным сервером, например C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn и выполнить команду:

sqlservr.exe -m

Далее необходимо выполнить запрос:

restore database master
from disk='D:\путь\к\файлу\master.bak' with replace

После того как запрос выполнен, останавливаем однопользовательский режим (Ctrl+C) и запускаем службу в обычном режиме.
Далее повторяем этот же запрос для всех остальных баз.

Перенос

Чтобы перенести системные базы данных в другое место, нужно проделать нехитрые действия.
Останавливаем службу SQL Server и запускаем программу SQL Server Configuration Manager. Слева в древовидном списке выбираем SQL Server Services, в появившемся справа списке выбираем SQL Server (MSSQLSERVER) и открываем Properties. В появившемся окне переходим на вкладку Advanced и ищем параметр Startup Parameters. Вот его то нам и необходимо подкорректировать. Меняем пути для базы данных master:

-dC:\новый\путь\к\файлу\master.mdf;-eC:\новый\путь\к\файлу\ERRORLOG;-lC:\новый\путь\к\файлу\mastlog.ldf

Переносим файлы master.mdf, mastlog.ldf и папку с логами в новое место и стартуем службу.
Затем выполняем запрос для переноса баз model, msdb и tempdb:

use master;
go
alter database model modify file(name=modeldev, filename='C:\новый\путь\model.mdf')
go
alter database model modify file(name=modellog, filename='C:\новый\путь\modellog.ldf')
go
alter database msdb modify file(name=MSDBData, filename='C:\новый\путь\MSDBData.mdf')
go
alter database msdb modify file(name=MSDBLog, filename='C:\новый\путь\MSDBLog.ldf')
go
alter database tempdb modify file(name=tempdev, filename='C:\новый\путь\tempdb.mdf')
go
alter database tempdb modify file(name=templog, filename='C:\новый\путь\templog.ldf')
go

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

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *