В ситуации когда необходимо перенести базу данных SQL с одного экземпляра MS SQL Server на другой, или изменить каталог хранения файлов базы данных, помогут операции отсоединения (Detach) и присоединения (Attach) баз данных MS SQL Server. Об этих операциях в MS SQL Server 2012 (справедливо и для более ранних редакций MS SQL Server) и пойдет речь в данной статье.
0. Оглавление
1. Отсоединение базы данных в MS SQL Server 2012
Запускаем программу «SQL Server Management Studio». В Microsoft Windows Server 2012 R2 ее можно найти в списке всех программ.
В Microsoft Windows Server 2008 R2 в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Среда SQL Server Management Studio».
Вводим имя сервера, данные для авторизации и нажимаем «Соединить» (Connect).
В обозревателе объектов (Odject Explorer) раскрываем вкладку «Базы данных» (Databases), кликаем правой кнопкой мыши по базе данных, которую необходимо отсоединить, и в контекстном меню выбираем «Задачи» (Tasks) — «Отсоединить…» (Detach…).
В появившемся окне отсоединения базы данных возможно очистить существующие соединения с базой установив флаг «Удалить соединения» (Drop Connections) (не рекомендуется, правильно будет попросить пользователей закрыть клиентские программы), а также обновить статистику для базы данных отметив соответственно флаг «Обновить статистику» (Update Statistics). Выбрав необходимые операции нажимаем «ОК».
После чего выбранная база данных исчезнет из списка баз данных экземпляра MS SQL Server.
Но файлы базы данных останутся на жестком диске в том каталоге, где они находились до отсоединения базы данных.
2. Присоединение базы данных в MS SQL Server 2012
После отсоединения базы с одного экземпляра MS SQL Server, перенесем файлы базы данных (по умолчанию — файл данных с расширением .mdf и файл журнала транзакций с расширением .ldf) на другой сервер с установленным MS SQL Server, или переместим эти файлы в другою директорию на этом же сервере. Затем снова подключимся к SQL серверу на который необходимо перенести базу данных с помощью программы «SQL Server Management Studio». В обозревателе объектов (Object Explorer) кликнем правой кнопкой мыши по вкладке «Базы данных» (Databases) и в контекстном меню выберем «Присоединить…» (Attach…)
В запустившемся окне присоединения базы данных, с помощью кнопки «Добавить…» (Add…) выберем файл данных с расширением .mdf (или файлы, если их несколько) нашей базы данных из каталога их нового расположения. В таблице сведений (Database details) мастер должен определить расположение файла данных, а также найти соответствующий файл журнала транзакций с расширением .ldf. Если все необходимые файлы определились мастером успешно, нажимаем «ОК» для запуска процесса присоединения базы.
После чего, наша база данных появится в списке баз данных конечного экземпляра MS SQL Server.
После присоединения базы, перенесённой на другой диск, в свойствах базы путь к файлам остаётся старым и сама база в режиме «только для чтения», хотя в диалоге присоединения указан был новый путь.
В чём может быть проблема?
В правах на созданный каталог! Рекомендую скопировать каталог с базами в новое место с сохранением прав NTFS!
Мне помог перенос сертификата
Необходимо учетной записи под которой запущена служба сервера SQL дать полные права на файл с базой .mdf
Спасибо!
присоединение не шло пока не задала владельца файлов из перенесенной базы, а так в целом -гуд
Как удалить из админки, уже удаленную по факту базу?
Попробуйте ее просто отсоединить по способу, описанному в статье. Также попробуйте кликнуть правой кнопкой мыши по базе данных и в контекстном меню выбрать «Удалить».