Как отсоединить базу данных в sql
ОТКЛЮЧЕНИЕ И ПОДКЛЮЧЕНИЕ БАЗЫ ДАННЫХ В SQL SERVER MANAGEMENT STUDIO
SQL-сервер позволяет подключать несколько баз данных, можно использовать одну рабочую, а одну тестовую или временно подключить другую базу данных, чтобы в будущем перенести из неё информацию в главную БД. Когда необходимость в какой-то БД отпадает, её нужно отключать.
Процедура отключения и подключения БД происходит только с помощью специальной программы Management Studio (если это 2000-ый сервер, то подключать можно ещё с помощью программы Attach, см. соответсвующий блог), которую Вам нужно установить, если есть необходимость оперировать с БД. Процесс установки и настройки есть в документации, которую можно загрузить по адресу (глава 2- Установка MS SQL Server Management Studio 2008).
Откроется окно «Среда Microsoft SQL Server Management Studio».
Процедура подключения БД происходит через тоже окно, что и отключение. После того, как мы вошли в окно «Среда Microsoft SQL Server Management Studio» под паролем и логином, станьте на ветку «Базы данных», через контекстное меню выбираем пункт «Присоединить. ».
В появившемся окне указываем местоположение БД, которую нужно присоединить.
В конечном результате при загрузке GIS 6 и запросе на соединение с базой данных в поле «Базы данных» в ниспадающем списке отобразится наша подсоединённая БД.


Создан:
2013-10-07 09:43:34.99
Изменён:
2013-10-07 09:43:34.953
Перемещение базы данных при помощи отсоединения и присоединения (Transact-SQL)
В этом разделе описывается перемещение отсоединенной базы данных в другое местоположение и ее повторное присоединение к тому же или другому экземпляру сервера в SQL Server. Однако рекомендуется переносить базы данных с помощью процедуры запланированного переноса ALTER DATABASE, а не путем отсоединения и присоединения. Дополнительные сведения см. в статье Move User Databases.
Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Процедура
Перемещение базы данных при помощи операций отсоединения и присоединения
Отсоединение базы данных. Дополнительные сведения см. в разделе Отсоединение базы данных.
Переместите в «Проводнике» или окне командной строки файлы отсоединенной базы данных и журналов в новое место.
Перенос файлов журналов обязателен, даже если нужно создать новые файлы журналов. В некоторых случаях для повторного присоединения базы данных требуются файлы ее существующих журналов. Поэтому всегда храните все файлы отсоединенных журналов, пока база данных не будет успешно присоединена без них.
При попытке присоединить базу данных, не указывая файл журнала, операцией присоединения будет произведен поиск файла журнала в его исходном месте. Если копия журнала все еще хранится в исходном месте, она будет присоединена. Чтобы избежать применения исходного файла журнала, либо укажите путь к новому файлу журнала, либо удалите исходную его копию (после его копирования в новое место).
Присоединение скопированных файлов. Дополнительные сведения см. в статье Attach a Database.
Пример
Скопируйте любым образом файлы базы данных (AdventureWorks208R2_Data.mdf и AdventureWorks208R2_log) в папки C:\MySQLServer\AdventureWorks208R2_Data.mdf и C:\MySQLServer\AdventureWorks208R2_Log.ldf, соответственно.
При работе с производственными базами данных помещайте базу данных и журналы транзакций на отдельные диски.
При копировании файлов по сети на диск удаленного компьютера укажите имя удаленного места в формате UNC. Имя UNC имеет следующий формат: \\ имя_сервера \ имя_общего_хранилища \ путь \ имя_файла. Как и при записи файлов на жесткий диск локального компьютера, для записи (или считывания) файла на диск удаленного компьютера учетной запись пользователя, которая используется экземпляром SQL Server, должны быть предоставлены соответствующие разрешения.
Присоедините перемещенную базу данных и, возможно, ее журнал, выполнив следующие инструкции Transact-SQL :
Отсоединение и присоединение баз данных в Microsoft SQL Server (Detach и Attach)
В Microsoft SQL Server есть возможность отсоединять и присоединять базы данных, и сегодня мы с Вами поговорим о том, в каких случаях эта возможность будет нам полезна и, конечно же, рассмотрим примеры реализации данной возможности, причем разными способами.
Итак, давайте начнем с того, для чего же администратору баз данных может потребоваться отсоединить базу данных, а затем снова присоединить.
Первое — это, конечно же, для перемещения базы на другой экземпляр SQL Server, он может располагаться как на этом же компьютере, так и на другом (или просто для перемещения базы данных на другой физический жесткий диск, например, свободное место на диске заканчивается).
Второе — это тогда, когда например сервер вышел из строя, но файлы базы данных и журналов транзакций в порядке и необходимо эти файлы восстановить, т.е. присоединить к новому экземпляру SQL Server на новом сервере.
Вы можете найти и другое применение данной возможности, но перечисленные выше ситуации, особенно первая, самые распространённые.
Отсоединение баз данных в Microsoft SQL Server
Если отсоединить базу данных, то это означает ее удаление с этого экземпляра SQL Server, но при этом файлы базы данных останутся не поврежденными, которые затем можно использовать для присоединения к тому же или к другому экземпляру SQL Server.
В некоторых случаях отсоединить базу данных будет невозможно, например, тогда когда база данных реплицируется и публикуется, т.е. для отсоединения, база данных должна быть снята с публикации. Также отсоединить базу данных не получиться, если она находится в сеансе зеркального копирования, другими словами, для отключения базы данных необходимо завершить этот сеанс. Системную базу данных отсоединить вообще нельзя. Еще для выполнения отсоединения базы данных требуется монопольный доступ, т.е. в этот момент не должно быть подключенных к ней пользователей.
Отсоединить базу данных можно разными способами, например, на языке T-SQL, т.е. используя процедуру sp_detach_db или также можно воспользоваться графическим инструментом, т.е. SQL Server Management Studio. Мы с Вами разберем оба способа.
Примечание! Все примеры ниже будут рассмотрены на Microsoft SQL Server 2008 R2.
Отсоединение базы данных с помощью sp_detach_db
sp_detach_db – системная хранимая процедура, которая отсоединяет базу данных от экземпляра SQL сервера, а также может выполнить инструкцию UPDATE STATISTICS для всех таблиц перед отключением.
В качестве первого параметра она принимает имя базы данных, в качестве второго TRUE/FALSE (в виде текста), по умолчанию TRUE, т.е. это означает — не выполнять инструкцию UPDATE STATISTICS. Еще есть и третий параметр, который указывает, удалять или не удалять полнотекстовый индексный файл, связанный с отключаемой базой данных, по умолчанию TRUE, т.е. это означает — что метаданные, связанные с полнотекстовыми данными, сохраняются. Но этот параметр в новых версиях будет удален, честно говоря, не проверял на последних версиях, но разработчики SQL сервера не рекомендуют использовать этот параметр, уже начиная с версии 2008 R2.
Пример. Допустим, у нас есть база данных TestBase, и возникла необходимость ее отсоединить, для этого мы пишем следующую SQL инструкцию:
Отсоединение базы данных с помощью Management Studio
И для того чтобы получить точно такой же результат, как и в примере выше жмем сразу «ОК»
Примечание! Как в первом примере, так и во втором не забываем про монопольный доступ, его можно получить, например, установив параметр базы данных «Ограничение доступа» в SINGLE_USER.
Присоединение баз данных в MS SQL Server
Для того чтобы присоединить базу данных, необходимы соответственно файлы этой базы данных, т.е. mdf, ldf. В случаях если журналы транзакций, т.е. файлы ldf не указаны, то они будут перестроены, но только в том случае если присоединяемая база данных доступна как для чтения, так и для записи. Если база данных была закрыта аварийно, при этом в ней работали пользователи и были открытые транзакции, то файлы журнала транзакций лучше указывать. Присоединять базы данных, полученные из неизвестных источников, не рекомендуется.
Также как и при отсоединении присоединить базу данных можно несколькими способами, мы рассмотри три: это с помощью конструкции CREATE DATABASE, с помощью Management Studio, а также рассмотрим пример присоединения базы данных с использованием процедуры sp_attach_db.
Примечание! В документации указано, что возможность присоединять базы данных с помощью процедуры sp_attach_db в будущих версиях SQL сервера будет удалена, поэтому ее не рекомендуют использовать в новых разработках, в SQL Server 2008 R2 эта возможность ещё есть.
Присоединение базы данных с помощью CREATE DATABASE
Конструкция CREATE DATABASE используется не только для создания новой базы данных, но и для присоединения базы данных, которую ранее отсоединили.
Давайте с помощью конструкции CREATE DATABASE присоединим обратно базу TestBase, которую выше мы отсоединили.
Как Вы понимаете C:\TestBase.mdf и C:\TestBase_log.ldf — это пути к файлам базы данных.
Присоединение базы данных с помощью Management Studio
В Management Studio присоединение делается следующим образом, в обозревателе объектов щёлкните правой кнопкой мыши по пункту «Базы данных» и нажмите «Присоединить»
Затем через кнопку «Добавить» выбираем файл базы данных (MDF-файл) и жмем «ОК».
Примечание! Если выбрать базу данных, которая уже присоединена, возникнет ошибка.
Присоединение базы данных с помощью процедуры sp_attach_db
sp_attach_db – системная хранимая процедура, которая присоединяет базы данных к экземпляру SQL сервера. Как было уже сказано выше, ее не рекомендуют использовать в новых разработках. Первым параметром передается имя базы данных присоединяемой к серверу, оно должно быть уникальным. Вторым и далее (до 16) передаются пути к файлам базы данных.
Примечание! В случае если Вам необходимо присоединить более 16 файлов, то нужно использовать CREATE DATABASE database_name FOR ATTACH.
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
На этом у меня все, надеюсь, материал был Вам полезен, удачи!
Отсоединение и Присоединение баз данных в 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 ее можно найти в списке всех программ.
В 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.
Смотрите также:
Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…
В данной статье будут рассмотрены способы лицензирования Microsoft SQL Server 2012. Будет приведен краткий обзор каждого из способов лицензирования, а также указаны возможные варианты лицензирования для различных выпусков MS SQL Server…
Ниже приводится список существующих редакций Microsoft SQL Server 2012, а также приводится краткий обзор каждой из них. Microsoft SQL Server 2012 предлагается в нескольких специально разработанных редакциях:…
Присоединение и отсоединение базы данных (SQL Server)
Файлы данных и журналов транзакций базы данных можно отсоединить, а затем снова присоединить к тому же или другому экземпляру SQL Server. Отсоединение и присоединение базы данных полезно, если необходимо переместить базу данных на другой экземпляр SQL Server на том же компьютере либо перенести базу данных.
безопасность
Разрешения на доступ к файлам устанавливаются во время выполнения определенных операций с базами данных, включая отсоединение и присоединение баз данных.
Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных.
Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.
Отсоединение базы данных
Базу данных невозможно отсоединить в следующих случаях.
База данных реплицируется и публикуется. При репликации база данных должна быть снята с публикации. Перед тем как отсоединить базу данных, необходимо отключить публикацию, выполнив процедуру sp_replicationdboption.
Если невозможно использовать процедуру sp_replicationdboption, можно удалить репликацию, выполнив процедуру sp_removedbreplication.
Имеется моментальный снимок базы данных.
Перед отсоединением базы данных необходимо удалить все моментальные снимки. Дополнительные сведения см. в разделе Удаление моментального снимка базы данных (Transact-SQL).
Невозможно отсоединить или присоединить моментальный снимок базы данных.
Эта база данных является частью группы доступности AlwaysOn.
База данных не может быть отсоединена, пока она не будет удалена из группы доступности. Дополнительные сведения см. в разделе Удаление базы данных — источника из группы доступности Always On.
База данных находится в сеансе зеркального копирования.
Отключить базу данных невозможно, пока этот сеанс не завершится. Дополнительные сведения см. в разделе Удаление зеркального отображения базы данных (SQL Server).
База данных помечена как подозрительная. Подозрительную базу данных невозможно отсоединить. Для отсоединения ее необходимо перевести в аварийный режим. Дополнительные сведения о переводе базы данных в аварийный режим см. в разделе ALTER DATABASE (Transact-SQL).
База данных является системной базой данных.
Резервное копирование, восстановление и отсоединение
Для разностных резервных копий отсоединение базы данных, доступной только для чтения, приводит к потере сведений о базовой копии для разностного копирования. Дополнительные сведения см. в разделе Разностные резервные копии (SQL Server).
Реакция на ошибки отсоединения
Ошибки, возникшие во время отсоединения базы данных, могут воспрепятствовать чистому закрытию базы данных и перестроению журнала транзакций. При получении сообщения об ошибке выполните следующие действие по исправлению.
Заново присоедините все файлы, связанные с базой данных, а не только первичный файл.
Исправьте неполадку, ставшую причиной сообщения об ошибке.
Отсоедините базу данных повторно.
Присоединение базы данных
При присоединении базы данных должны быть доступны все файлы данных (файлы MDF и NDF). Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу.
Если присоединяемый первичный файл данных доступен только для чтения, компонент Компонент Database Engine предполагает, что и база данных доступна только для чтения.
Требования для присоединения файлов журналов частично зависят от того, доступна база данных для записи и чтения или только для чтения.
Для базы данных, доступной для записи и чтения, обычно можно присоединить файл журнала в новом расположении. Однако в некоторых случаях для повторного соединения базы данных требуются файлы ее существующих журналов. Поэтому всегда храните все отсоединенные файлы журналов, пока база данных не будет успешно присоединена без них.
Если у базы данных, доступной для записи и чтения, только один файл журнала и для него не указано новое расположение, операция присоединения использует старое расположение файла. Если он найден, применяется старый файл журнала независимо от того, была ли база данных выключена чисто. Однако если старый файл журнала не найден и база данных была выключена чисто и не имеет активной цепочки журналов, то операция присоединения пытается построить новый файл журнала для базы данных.
Если присоединяемый первичный файл данных доступен только для чтения, компонент Компонент Database Engine предполагает, что и база данных доступна только для чтения. Для базы данных, доступной только для чтения, файл или файлы журнала должны быть доступны в расположении, указанном в первичном файле базы данных. Новый файл журнала построить невозможно, так как SQL Server не может обновить расположение журнала, указанное в первичном файле.
Изменение метаданных при присоединении базы данных
Если база данных, доступная только для чтения, отсоединяется, а затем снова присоединяется, то данные о текущей базовой копии для разностного копирования будут утеряны. Базовая копия для разностного копирования — это последняя из полных резервных копий всех данных из базы данных или из подмножества файлов и файловых групп, содержащихся в базе данных. Без сведений о базовой резервной копии база данных master утрачивает синхронизацию с базой данных, доступной только для чтения, и дальнейшее создание разностных резервных копий может привести к непредвиденным результатам. Таким образом, если с базой данных, доступной только для чтения, используются разностные резервные копии, то после повторного присоединения базы данных необходимо установить новую базовую копию для разностного копирования, создав полную резервную копию. Сведения о разностных резервных копиях см. в разделе Разностные резервные копии (SQL Server).
После присоединения происходит запуск базы данных. Обычно присоединение базы данных переводит ее в то же состояние, в котором она находилась на момент отсоединения или копирования. Однако операции присоединения и отсоединения отключают создание межбазовых цепочек владения для этой базы данных. Сведения о том, как включить цепочки владения, см. в разделе Параметр конфигурации сервера «cross db ownership chaining».
По умолчанию в целях безопасности параметры is_broker_enabled, is_honor_broker_priority_on и is_trustworthy_on устанавливаются в значение OFF при подключении базы данных. Сведения о том, как установить эти параметры в значение ON, см. в статье ALTER DATABASE (Transact-SQL). Дополнительные сведения о метаданных см. в статье Управление метаданными при предоставлении доступа к базе данных на другом сервере.
Резервное копирование, восстановление и присоединение
Подобно любой базе данных, которая полностью или частично вне сети, база данных с восстановлением файлов не может быть присоединена. Базу данных можно присоединить после остановки последовательности восстановления. Затем можно снова запустить последовательность восстановления.
Присоединение базы данных к другому экземпляру сервера
База данных, созданная в более поздней версии SQL Server, не может быть присоединена в ранних версиях. Это физически исключает возможность использования базы данных с более старой версией Компонент Database Engine. Тем не менее это относится к состоянию метаданных и не влияет на режим совместимости базы данных. Дополнительные сведения см. в разделе Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).
При присоединении базы данных к другому экземпляру сервера для обеспечения ее согласованного функционирования для пользователей и приложений может понадобиться повторное создание некоторых или всех метаданных базы данных, например имен входа и задания, на другом экземпляре сервера. Дополнительные сведения см. в статье Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server).

















