SQL Server – Перенос системных баз
Системными БД в MS SQL являются master, msdb, model, tempdb и малоизвестная служебная БД mssqlsystemresource.
Довольно часто необходимо перенести системные БД SQL в другую папку или на другой диск.
Делается это в 2 приема.
Сначала MS SQL Server нужно будет сначала перенести master и mssqlsystemresource, а затем оставшиеся msdb, model, tempdb.
В моем примере буду переносить базы из
в
Запускаем SQL Server Configuration Manager
SQL Server (MSSQLSERVER) -> Properties
Вкладка Advanced, Startup Parameters
Изменяем пути
Останавливаем службу SQL
Запускаем SQL в монопольном режиме и работаем только с базой master
Для этого в cmd набираем команду
запускаем sqlcmd –A
набираем 3 строки для изменения пути к mssqlsystemresource.mdf
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
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 выполняем запросы:
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 2.0. Вы можете оставить комментарий, или использовать trackback с вашего сайта.