Attach и Detach базы в MS SQL

Как присоединить или отсоединить базу данных в MS SQL, другими словами выполнить Attach и Detach.

Если Вы уже какое-то время администрируете MS SQL, то скорее всего слышали такой термин как «Приаттачить» базу или сделать ее «Деттач» / «Аттач»

Конечно, данная тема также подымается и на курсе: Администратор 1С!

Операция действительно используется довольно часто для переноса базы, к примеру, на другой сервер или экземпляр MS SQL.

И действительно, ведь чтоб перенести базу, достаточно ее просто отсоединить (выполнить Detach) и затем на новом сервере СУБД присоединить (выполнив Attach). Быстро и удобно!

Конечно, Attach и Detach базы можно использовать и в ряде других случаев, к примеру,  мы хотим просто перенести лог (*ldf файл журнала транзакций) на другой диск, или вместе с базой, и здесь нам также поможет команда «Деттач» и «Аттач». Иногда даже для бэкапа файлов *ldf и *mdf ее используют, конечно, это не есть  хорошо, но также верный способ позволяющий скопировать файлы.

К слову если сервер СУБД работает, плюс  база «Онлайн» тогда если предварительно не сделать Detach, или не перевести базу в offline (так называемый автономный режим), скопировать лог или базу мы не сможем, получим ошибку что файл используется!

В теории разобрались, приступим к практике.

Давайте представим ситуацию, что место на диске, где у нас лежит лог файл *ldf закончилось, и возникла задача по его переносу на другой диск.

Собственно чем мы сейчас и займемся!

И так все действия мы будем проводить в Management Studio.

Находим интересующую базу, затем правый клик мышкой – «Задачи» – «Отсоединить»

Attach и Detach базы в MS SQL

(В eng версии вместо  «Отсоединить» будет «Detach»).

Затем в окне отсоединения базы следует поставить птичку «Удалить соединения».

ВАЖНО! Если с базой работают пользователи (к примеру в 1С Предприятии), есть активные соединения, тогда Вы без их завершения не сможете выполнить отсоединение базы!

Как видно на скрине выше, активных соединений нет, но птичку тем не менее поставить нужно, вдруг в момент отсоединения кто-то вздумает запустить 1С Предприятие.

Конечно в любом случаи при выполнении «Detach» базы, пользователей предварительно нужно уведомить о том что база будет недоступна кокой-то промежуток времени (Если с ней работают).

 

Ставить птичку возле “Обновить статистику” не рекомендую, иначе могут возникнуть на этом этапе различные ошибки, такие как перевод базы в “single user”, бывает что даже зависает Management Studio (.

После успешного отсоединения базы она исчезает из списка “Обозревателя объектов” (Но не из диска, там все файлы будут на месте и mdf и ldf) как на рисунке ниже.

Вот мы и смогли выполнить первую часть работы, отсоединили базу, сделали ее «Detach».

Теперь мы уже можем скопировать наш лог файл на другой диск (Рис. ниже):

 

И приступаем ко второму шагу по присоединению базы или как его еще называют “Приаттачим” базу используя все тот же Managmant Studio.

На “базах” правый клик мышкой и выбираем “Присоединить” / Attach.

Затем в окне “Присоединения базы” клик по кнопке “Добавить”

Сперва укажем расположение файла mdf (база). У меня это диск E:\DATA\BUHG1C.mdf

После того как мы кликнем по кнопке “ОК” увидим в окне ниже что MS SQL предполагает, что расположение файла лога соответствует расположению базы mdf, но конечно, лога по указанному месту уже нет, мы его переместили на другой диск, и теперь его следует указать вручную!

 

Укажем новое расположение лога кликнув по кнопке “…”

Диск H:\LOGSSD\BUHG1C_log.ldf

Убедившись что новое расположение лога указанно верно, можно кликнуть по кнопке “ОК”.

ВНИМАНИЕ! Если получили ошибку (рис. ниже)

Тогда скорее всего Вы пытаетесь выполнить данную операцию под пользователем (рутом) “SA”.

Все что нужно сделать, так это выполнить данную операцию от Администратора Windows (Если установили смешанный режим проверки подлинности, еще на этапе установки самого MS SQL). 

Просто выбираем “Проверка подлинности Windows” при старте Managmant Studio.

И повторим действия с присоединением базы.

В случаи успеха, база вновь появится в списке баз обозревателя объектов! (Как на рисунке ниже).

 

 

 

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

Успехов Коллега!

С уважением, Богдан.

Бот Odin в греппе https://t.me/odineski

Не нашли что искали?

Наш бот "Одинэсник" найдёт бесплатно! Пишите ему в группе: телеграм

Оставьте ответ

Нужна помощь ?