SQL Server – Перенос системных баз

Системными БД в MS SQL являются master, msdb, model, tempdb и малоизвестная служебная БД mssqlsystemresource.

Довольно часто необходимо перенести системные БД SQL в другую папку или на другой диск.

Делается это в 2 приема.
Сначала нужно будет перенести базы master и mssqlsystemresource, а затем оставшиеся msdb, model, tempdb.

В моем примере буду переносить базы из

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\

в

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\

Запускаем SQL Server Configuration Manager

SQL Server (MSSQLSERVER) -> Properties
Вкладка Advanced, Startup Parameters
Изменяем пути

-dC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\NewFolder\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG;-lC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\NewFolder\mastlog.ldf

Останавливаем службу SQL

Запускаем SQL в монопольном режиме и работаем только с базой master
Для этого в cmd набираем команду

net start MSSQLSERVER /c /m /T3608

запускаем sqlcmd –A

набираем 3 строки для изменения пути к mssqlsystemresource.mdf

ALTER DATABASE mssqlsystemresource
MODIFY FILE (name = ‘data’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\mssqlsystemresource.mdf’)
GO

На выходе ответ об успешном применении

The file «data» has been modified in the system catalog. The new path will be used the next time the database is started.

набираем 3 строки для изменения пути к mssqlsystemresource.ldf

ALTER DATABASE mssqlsystemresource
MODIFY FILE (name = ‘log’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\mssqlsystemresource.ldf’)
GO

На выходе ответ об успешном применении

The file «log» has been modified in the system catalog. The new path will be used the next time the database is started.

Выходим из sqlcmd командой QUIT

Останавливаем службу SQL

Переносим файлы .mdf и .ldf от баз mssqlsystemresource и master в новое место

Стартуем SQL как обычно

Далее переносим базы msdb, model, tempdb
в MS SQL Server Management Studio выполняем запросы:

ALTER DATABASE msdb
MODIFY FILE (name = ‘MSDBDATA’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\MSDBDATA.mdf’)
ALTER DATABASE msdb
MODIFY FILE (name = ‘MSDBLOG’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\MSDBLOG.ldf’)

ALTER DATABASE model
MODIFY FILE (name = ‘modeldev’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\model.mdf’)
ALTER DATABASE model
MODIFY FILE (name = ‘modellog’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\modellog.ldf’)

ALTER DATABASE tempdb
MODIFY FILE (name = ‘tempdev’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\tempdb.mdf’)
ALTER DATABASE tempdb
MODIFY FILE (name = ‘templog’, filename = ‘C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\NewFolder\templog.ldf’)

Останавливаем SQL
Переносим файлы .mdf и .ldf в новое место
Стартуем SQL
Всё.

Проверено на работоспособность в SQL 2005 и 2008.

Для автоматизации переноса можно использовать скрипты приведенные здесь.


Если Вам понравилась статья, то вы можете подписаться на RSS.
А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.

Получать обновления на email

Вы можете оставить комментарий.

6 Комментариев »

 
 

Добавить комментарий

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>