SQL Server – Перенос системных баз
Системными БД в MS SQL являются master, msdb, model, tempdb и малоизвестная служебная БД mssqlsystemresource.
Довольно часто необходимо перенести системные БД SQL в другую папку или на другой диск.
Делается это в 2 приема.
Сначала нужно будет перенести базы 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.
Для автоматизации переноса можно использовать скрипты приведенные здесь.
А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.
Вы можете оставить комментарий.
Тут проще share-know.ru/index.php?page=servers&str=5&id=13
AlexЦитировать
если учесть что этот сайт имеет вредоносное ПО то это не проще.
обратите внимание на вставку ява скрипта в конце страницы.
Вашу ссылку увы пришлось видоизменить.
Сергей МариничевЦитировать
Это не вредоносное ПО а реклама на сайте….
АлександрЦитировать
действительно реклама…
Сергей МариничевЦитировать
Попробовал на MSSQL2008R2. После изменения путей в startup parametres и попытке запуска службы в монопольном режиме выдается ошибка 17113 и служба не запускается
АлексейЦитировать
Надо смотреть что в логе error.log
Скорее всего в новом местоположении у аккаунта под которым работает служба нет полных прав.
Сергей МариничевЦитировать