Как отсоединить базу данных в sql server
Перейти к содержимому

Как отсоединить базу данных в sql server

  • автор:

ОТКЛЮЧЕНИЕ И ПОДКЛЮЧЕНИЕ БАЗЫ ДАННЫХ В SQL SERVER MANAGEMENT STUDIO

SQL-сервер позволяет подключать несколько баз данных, можно использовать одну рабочую, а одну тестовую или временно подключить другую базу данных, чтобы в будущем перенести из неё информацию в главную БД. Когда необходимость в какой-то БД отпадает, её нужно отключать.

Процедура отключения и подключения БД происходит только с помощью специальной программы Management Studio (если это 2000-ый сервер, то подключать можно ещё с помощью программы Attach, см. соответсвующий блог), которую Вам нужно установить, если есть необходимость оперировать с БД. Процесс установки и настройки есть в документации, которую можно загрузить по адресу (глава 2- Установка MS SQL Server Management Studio 2008).

Для отключения или подключения БД необходимо войти под паролем и логином в среду Microsoft SQL Server Management Studio. Так же нужно учитывать, что для отображения подключенных БД в SQL Server 2000 – в поле «Имя сервера» вводим только имя компьютера, а для SQL Server 2005 и SQL Server 2008 в поле «Имя сервера» — имя компьютера и имя екземпляра.

Открыть рисунок

Откроется окно «Среда Microsoft SQL Server Management Studio».

В области «Обозреватель объектов» в ветке «Базы данных» выбираем БД, которую нужно отключить и через контекстное меню «Задачи» -> «Отсоединить» отсоединяем желаемую базу. Нужно учесть, что база не удаляется, она просто отключается от SQL-сервера.

Открыть рисунок

Процедура подключения БД происходит через тоже окно, что и отключение. После того, как мы вошли в окно «Среда Microsoft SQL Server Management Studio» под паролем и логином, станьте на ветку «Базы данных», через контекстное меню выбираем пункт «Присоединить. ».

Открыть рисунок

В появившемся окне указываем местоположение БД, которую нужно присоединить.

Открыть рисунок

Открыть рисунок

В последнем окне видна информация о присоединяемой БД: местоположение БД и название. И нажимаем «Ок» — в результате чего наша база отобразится в «Обозреватели объектов» в директории «Базы данных».

В конечном результате при загрузке GIS 6 и запросе на соединение с базой данных в поле «Базы данных» в ниспадающем списке отобразится наша подсоединённая БД.

Отсоединение и Присоединение баз данных в MS SQL Server 2012

В ситуации когда необходимо перенести базу данных 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 ее можно найти в списке всех программ.

Ustanovka_SQL_2012_23

В Microsoft Windows Server 2008 R2 в меню «Пуск» (Start) — «Microsoft SQL Server 2012» — «Среда SQL Server Management Studio».

Ustanovka_SQL_2012_23

Вводим имя сервера, данные для авторизации и нажимаем «Соединить» (Connect).

В обозревателе объектов (Odject Explorer) раскрываем вкладку «Базы данных» (Databases), кликаем правой кнопкой мыши по базе данных, которую необходимо отсоединить, и в контекстном меню выбираем «Задачи» (Tasks) — «Отсоединить…» (Detach…).

detach-attach-bd-ms-sql-server-2012_01

В появившемся окне отсоединения базы данных возможно очистить существующие соединения с базой установив флаг «Удалить соединения» (Drop Connections) (не рекомендуется, правильно будет попросить пользователей закрыть клиентские программы), а также обновить статистику для базы данных отметив соответственно флаг «Обновить статистику» (Update Statistics). Выбрав необходимые операции нажимаем «ОК».

detach-attach-bd-ms-sql-server-2012_02

После чего выбранная база данных исчезнет из списка баз данных экземпляра MS SQL Server.

detach-attach-bd-ms-sql-server-2012_03

Но файлы базы данных останутся на жестком диске в том каталоге, где они находились до отсоединения базы данных.

2. Присоединение базы данных в MS SQL Server 2012

После отсоединения базы с одного экземпляра MS SQL Server, перенесем файлы базы данных (по умолчанию — файл данных с расширением .mdf и файл журнала транзакций с расширением .ldf) на другой сервер с установленным MS SQL Server, или переместим эти файлы в другою директорию на этом же сервере. Затем снова подключимся к SQL серверу на который необходимо перенести базу данных с помощью программы «SQL Server Management Studio». В обозревателе объектов (Object Explorer) кликнем правой кнопкой мыши по вкладке «Базы данных» (Databases) и в контекстном меню выберем «Присоединить…» (Attach…)

detach-attach-bd-ms-sql-server-2012_04

В запустившемся окне присоединения базы данных, с помощью кнопки «Добавить…» (Add…) выберем файл данных с расширением .mdf (или файлы, если их несколько) нашей базы данных из каталога их нового расположения. В таблице сведений (Database details) мастер должен определить расположение файла данных, а также найти соответствующий файл журнала транзакций с расширением .ldf. Если все необходимые файлы определились мастером успешно, нажимаем «ОК» для запуска процесса присоединения базы.

detach-attach-bd-ms-sql-server-2012_05

После чего, наша база данных появится в списке баз данных конечного экземпляра MS SQL Server.

detach-attach-bd-ms-sql-server-2012_06

Смотрите также:

Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…

В данной статье будут рассмотрены способы лицензирования Microsoft SQL Server 2012. Будет приведен краткий обзор каждого из способов лицензирования, а также указаны возможные варианты лицензирования для различных выпусков MS SQL Server…

Ниже приводится список существующих редакций Microsoft SQL Server 2012, а также приводится краткий обзор каждой из них. Microsoft SQL Server 2012 предлагается в нескольких специально разработанных редакциях:…

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, но конечно, лога по указанному месту уже нет, мы его переместили на другой диск, и теперь его следует указать вручную!

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

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

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

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

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

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

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

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

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

Как перенести файл базы данных SQL Server

В данной статье покажу 2 способа перемещения файла(ов):

  1. Через «Отсоединить/Присоединить» базу;
  2. Через Offline/Online базы.

Для данного эксперимента то же самое железо и программно обеспечение, которое описано в статье по созданию базы для 1с

Ну что ж, приступим. Для начала необходимо подключиться/залогиниться к MS SQL Server и данную информацию возьму из предыдущей статьи:

Запускаем Management Studio через меню Пуск:

Запуск management studio через Пуск

Также можно запустить командным способом: Win+R далее вводим команду SSMS далее OK:

Запуск management studio командным способом

Далее неоходимо будет выбрать пользователя для входа в систему, в данном случае был выбран пользователь из-под которого был установлен MS SQL Server, который является администратором в данном экземпляре SQL Server. Жмём «Соединить»(Connect):

Выбо пользователя для подключения

Если небходимо подключиться к удалённому серверу без доменной авторизации, то необходимо будет использовать «Проверка подлинности SQL Server»(SQL Server Authentication):

Выбор способа подключения

И далее в соответствующих полях необходимо ввести логин(Имя для входа) и пароль — вводим все данные и жмём Соединить:

sql авторизация

После успешного подключения в левой части экрана будет модальное окно «Обозреватель объектов»(Object Explorer):

Обозреватель объектов

Также будем использовать уже ранее созданную базу данных [db_for_1c], в которой уже на этапе создания была создана дополнительная файловая группа помимо PRIMARY и эта дополнительная группа является группой по умолчанию.

Для начала нужно определиться какой файл и куда будем перемещать. Для этого в «Обозреватель Объектов»(Object Explorer) в списке баз данных на нужной нам базе правой кнопкой мыши кликаем один раз и во всплывшем диалоговом окне левой кнопкой мыши кликаем один раз на «Свойства»(Properties):

Запуск свойств

Для эксперимента возьмём файл db_for_1c_file1 — это его логическое имя. Свойство необходимо, чтобы взять отуда логическое имя файла и сопоставить его с физическим файлом.

Выбираем файл в свойствах

Также можно сделать запрос к системной таблице sys.database_files , но обязательно в контексте нужной базы данных:

, запускаем его с помощью F5 или кнопкой «Выполнить» с зелёным треугольником, результат выполнения данного запроса ниже:

имена файлов через sql-запрос

Чуть-чуть о контексте исполнения запросов — базу можно выбрать двумя способами: 1-й графически (выбрать в левом верхнем углу, по умолчанию будет master), 2-й способ — использовать конструкцию USE [database_name]. Если использовать 1-й способ, тогда USE использовать необязательно, но тоже можно — никаких конфликтов не будет.

Приступим к первому способу перемещения файла или файлов, для этого на нужной базе правой кнопкой кликаем по базе и вызываем диалоговое окно, также когда мы заходили в свойства, только сейчас нужно кликнуть по «Задачи»(Tasks) всплывает новое диалоговое окно — жмём на самый верхний пункт «Отсоединить»(Detach. ). см. скрин ниже:

Отсоединение базы

Во всплывшем окне «Отсоединение базы данных»(Detach Database) устанавливаем птичку «удалить соединения»(Drop Connections) и жмём OK:

Отсоединение базы данных

База «исчезла» из «Обозреватель объектов»(Object Explorer):

База отсутствует

Далее с помощью «Мой компьютер» или других файловых менеджеров переносим файл в другой каталог(диск), например из D:\c\base\sql\ в D:\c\base\sql\test_path\ файл db_for_1c_file1.ndf

Следующим действим необходимо снова присоединить базу: правой кнопкой мыши кликаем на «Базы данных»(Databases) затем кликаем левой кнопкой на «присоединить»(Attach. )

Присоединение шаг 1

В окне «Присоединение баз данных»(Attach Databases) под полем «Базы данных для присоединения:» (Databases to attach:) кликаем по кнопке «Добавить. «(Add. )

Присоедиение базы диал. окно

Необходимо найти файл с метаданными, как правило данный файл имеет расширение mdf, в нашем случае это файл db_for_1c.mdf, после того как мы его нашли жмём ОК:

ищем файл mdf

В поле «Сведения о базе данных»(Database details) в колонке Текущий путь к файлу(Current File Path) необходимо прописать корректные пути для файлов базы данных.

Выбираем правильные пути

После того, как пути будут прописаны — жмём ОК.

пути выбраны

База данных вновь появилась в списке:

База снова появилась

Выводы первого способа: данный способ можно использовать совершенно не зная T-SQL только кликая мышкой и делая copy-paste, но минус данного способа, если много файлов и пути собьются, то придётся их перепрописывать.

Во-втором способе переместим обратно из D:\c\base\sql\test_path\ в D:\c\base\sql\ файл db_for_1c_file1.ndf

При работающей базе запустим следующий SQL-запрос:

USE master;
GO
ALTER DATABASE db_for_1c
MODIFY FILE
(
NAME = db_for_1c_file1,
FILENAME = N’D:\c\base\sql\db_for_1c_file1.ndf’
);

, где в NAME — прописываем логическое имя файла, а FILENAME — физическое имя файла с указанием полного пути

и запускаем его с помощью F5 или кнопкой «Выполнить» с зелёным треугольником:

alter database для изменения пути файла

следующим шагом переводим базу в автономный режим(Take Offline):

Переводим в offline

установим птичку «Удалить все активные подключения» и жмём OK:

удалям подключения

База отключена, о чём свидетельствует статус «Вне сети»(Offline):

база offline

после этого перемещаем файл из D:\c\base\sql\test_path\ в D:\c\base\sql\

и переводим базу в оперативный режим (Bring Online):

Переводим в Online

базу успешно снова ввели в работу (Online), о чём свидетельствует сообщение об успешно проделанной работе:

успешная работа

Проверяем базу путём открытия списка таблиц:

База успешно введена в работу

Выводы по второму способу: на мой взгляд второй спобо более элегатный, но при этом он не нравится тем, кто не хочет запускать sql код.

PS: Какой из способов использовать каждый должен решать сам, хотя нужно знать оба способа. Желаю успехов в работе.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *