Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Файлы данных и журналов транзакций базы данных можно отсоединить, а затем повторно подключиться к одному или другому экземпляру SQL Server. Отключение и присоединение базы данных полезно, если вы хотите изменить базу данных на другой экземпляр SQL Server на одном компьютере или переместить базу данных.
Разрешения
Разрешения на доступ к файлам задаются во время нескольких операций базы данных, включая отключение или присоединение базы данных.
Внимание
Рекомендуется не подключать или восстанавливать базы данных из неизвестных или ненадежных источников. В этих базах данных может содержаться вредоносный код, вызывающий выполнение непредусмотренных инструкций Transact-SQL или появление ошибок из-за изменения схемы или физической структуры базы данных. Прежде чем использовать базу данных из неизвестного или ненадежного источника, запустите DBCC CHECKDB (Transact-SQL) в базе данных на непроизводном сервере, а также изучите код, например хранимые процедуры или другой определяемый пользователем код в базе данных.
Отсоединение базы данных
Отключение базы данных удаляет ее из экземпляра SQL Server, но оставляет базу данных нетронутой в его файлах данных и файлах журнала транзакций. Затем эти файлы можно использовать для подключения базы данных к любому экземпляру SQL Server, включая сервер, с которого была отключена база данных.
Вы не можете отсоединить базу данных, если выполняется любое из следующих условий:
База данных реплицируется и публикуется. При репликации база данных должна быть снята с публикации. Перед тем как отсоединить базу данных, необходимо отключить публикацию, выполнив процедуру sp_replicationdboption.
Примечание.
Если вы не можете использовать
sp_replicationdboption, можно удалить репликацию, выполнив sp_removedbreplication.Имеется моментальный снимок базы данных.
Перед отсоединением базы данных необходимо удалить все моментальные снимки. Дополнительные сведения см. в разделе "Удаление моментального снимка базы данных" (Transact-SQL).
Примечание.
Снимок базы данных нельзя отсоединить или присоединить.
Эта база данных является частью группы доступности AlwaysOn.
База данных не может быть отключена, пока она не будет удалена из группы доступности. Дополнительные сведения см. в разделе Удаление первичной базы данных из группы доступности Always On.
База данных зеркально копируется в сеансе зеркального копирования базы данных.
База данных не может быть отключена, если сеанс не будет завершен. Дополнительные сведения см. в разделе Удаление зеркального отображения базы данных (SQL Server).
База данных помечена как подозрительная. Подозреваемая база данных не может быть отключена; Прежде чем вы сможете отсоединить его, его необходимо поместить в режим экстренного реагирования. Дополнительные сведения о том, как поместить базу данных в аварийный режим, см. в разделе ALTER DATABASE (Transact-SQL).
База данных является системной базой данных.
Резервное копирование, восстановление и отключение
Для разностных резервных копий отсоединение базы данных, доступной только для чтения, приводит к потере сведений о базовой копии для разностного копирования. Дополнительные сведения см. в разделе Разностные резервные копии (SQL Server).
Реагирование на ошибки отсоединения
Ошибки, возникшие во время отсоединения базы данных, могут воспрепятствовать чистому закрытию базы данных и перестроению журнала транзакций. При получении сообщения об ошибке выполните следующие действие по исправлению.
Заново присоедините все файлы, связанные с базой данных, а не только первичный файл.
Исправьте неполадку, ставшую причиной сообщения об ошибке.
Отсоедините базу данных повторно.
Присоединение базы данных
Вы можете присоединить скопированную или отсоединяемую базу данных SQL Server. При присоединении базы данных SQL Server 2005 (9.x), содержащей файлы полнотекстового каталога на экземпляр SQL Server, файлы каталога присоединяются из предыдущего расположения вместе с другими файлами базы данных, так же, как и в SQL Server 2005 (9.x). Дополнительные сведения см. в разделе Обновление полнотекстового поиска.
При присоединении базы данных все файлы данных (.mdf и .ndf файлы) должны быть доступны. Если у какого-либо файла данных путь отличается от того, каким он был при первом создании или последнем присоединении, необходимо указать текущий путь к файлу.
Примечание.
Если присоединенный первичный файл данных доступен только для чтения, ядро СУБД предполагает, что база данных доступна только для чтения.
При первом присоединении зашифрованной базы данных к экземпляру SQL Server владелец базы данных должен открыть главный ключ базы данных (DMK), выполнив следующую инструкцию: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password' Рекомендуется включить автоматическую расшифровку dmK, выполнив следующую инструкцию: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY Дополнительные сведения см. в статьях CREATE MASTER KEY (Transact-SQL) и ALTER MASTER KEY (Transact-SQL).
Требования к присоединению файлов журнала частично зависят от того, доступна ли база данных для чтения и записи или только для чтения, следующим образом:
Для базы данных, доступной для записи и чтения, обычно можно присоединить файл журнала в новом расположении. Однако в некоторых случаях для повторного соединения базы данных требуются файлы ее существующих журналов. Поэтому важно всегда хранить все отсоединённые файлы журнала до тех пор, пока база данных не будет успешно присоединена без них.
Если база данных для чтения и записи содержит один файл журнала, и вы не указываете новое расположение для файла журнала, операция присоединения выглядит в старом расположении для файла. Если старый файл журнала найден, он используется независимо от того, была ли база данных закрыта. Однако если старый файл журнала не найден, и если база данных была закрыта и не имеет активной цепочки журналов, операция присоединения пытается создать новый файл журнала для базы данных.
Если присоединенный первичный файл данных доступен только для чтения, ядро СУБД предполагает, что база данных доступна только для чтения. Для базы данных, доступной только для чтения, файл или файлы журнала должны быть доступны в расположении, указанном в первичном файле базы данных. Невозможно создать новый файл журнала, так как SQL Server не может обновить расположение журнала, хранящееся в основном файле.
Изменения метаданных при присоединении базы данных
Если база данных только для чтения отсоединяется, а затем присоединяется повторно, сведения о текущей базе разностного резервного копирования теряются.
База разностного резервного копирования — это самая последняя полная резервная копия всех данных базы данных или подмножества файлов или файловых групп базы данных. Без сведений master о базовом резервном копировании база данных становится несинхронизирована с базой данных только для чтения, поэтому разностные резервные копии, сделанные после этого, могут привести к непредвиденным результатам. Таким образом, если вы используете разностные резервные копии с базой данных, доступной только для чтения, необходимо установить новую разностную базу, выполнив полную резервную копию после повторного кэширования базы данных. Сведения о разностных резервных копиях см. в разделе "Разностные резервные копии" (SQL Server).
После присоединения происходит запуск базы данных. Обычно присоединение базы данных переводит ее в то же состояние, в котором она находилась на момент отсоединения или копирования. Однако операции присоединения и отсоединения отключают создание межбазовых цепочек владения для этой базы данных. Сведения о том, как включить цепочку владения, см. в разделе Параметр конфигурации сервера «Связывание цепочек владения между базами данных».
Внимание
По умолчанию в целях безопасности параметры is_broker_enabled, is_honor_broker_priority_on и is_trustworthy_on устанавливаются в значение OFF при подключении базы данных. Сведения о настройке этих параметров см. в разделе ALTER DATABASE (Transact-SQL). Дополнительные сведения о метаданных см. в разделе "Управление метаданными при создании базы данных" на другом сервере.
Резервное копирование, восстановление и подключение
Как и любая база данных, полностью или частично автономная, база данных с восстановлением файлов не может быть присоединена. Базу данных можно присоединить после остановки последовательности восстановления. Затем можно снова запустить последовательность восстановления.
Присоединение базы данных к другому экземпляру сервера
Внимание
База данных, созданная более последней версией SQL Server, не может быть присоединена в более ранних версиях. Это делает невозможным физическое использование базы данных с более старой версией ядра СУБД. Однако это относится к состоянию метаданных и не влияет на уровень совместимости базы данных. Дополнительные сведения см. в разделе ALTER DATABASEуровень совместимости (Transact-SQL).
Чтобы обеспечить согласованный интерфейс для пользователей и приложений, при присоединении базы данных к другому экземпляру сервера может потребоваться повторно создать некоторые или все метаданные для базы данных на другом экземпляре сервера. Эти метаданные включают, например, учётные записи и задания. Дополнительные сведения см. в разделе "Управление метаданными при создании базы данных" на другом сервере.
Связанные задачи
| Задача | Статья |
|---|---|
| Отсоединение базы данных |
-
sp_detach_db (Transact-SQL) - Отсоединение базы данных |
| Присоединение базы данных | - CREATE DATABASE - Присоединение базы данных - sp_attach_db (Transact-SQL) - sp_attach_single_file_db (Transact-SQL) |
| Обновление базы данных с помощью операций отсоединения и подключения | - Обновить базу данных с помощью отсоединения и повторного подключения (Transact-SQL) |
| Перемещение базы данных с помощью операций отсоединения и подключения | - Перемещение базы данных с помощью отсоединения и подключения (Transact-SQL) |
| Удалить снимок базы данных | - Удаление моментального снимка базы данных (Transact-SQL) |