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

Присоединение и отсоединение базы данных. SQL Server 2000 позволяет отсоединять detach базы данных от сервера.

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

Позже эту базу данных можно присоединить attach на этом же или другом сервере.

Отсоединение и присоединение в основном используются для переноса баз данных с одного диска или сервера на другой.

Если требуется скопировать базу данных на один или несколько удаленных серверов, можно выполнить резервное копирование базы данных и разослать копии. Другой способ - выполнить отсоединение базы данных и разослать пользователям все ее файлы. У себя на сервере пользователи смогут выполнить присоединение базы данных и сразу же начать работать с ней. Процедура отсоединения и присоединения занимает гораздо меньше времени, чем создание и восстановление резервной копии. Кроме того, отсоединенную базу данных можно записать на компакт-диски и разослать пользователям. Пользователи смогут работать с базой данных непосредственно с компакт-диска в режиме только для чтения. Такой подход особенно эффективен при рассылке каталогов, которые не должны изменяться.

Если планируется скопировать базу данных на компакт-диск, предварительно необходимо установить все ее группы файлов в режим только для чтения. Для этого используется команда ALTER DATABASE MODIFY FILEGROUP filegroup name READONLY. Выполнять операции присоединения и отсоединения базы данных могут только члены фиксированной роли сервера sysadmin.

Эти права не могут быть переданы никаким другим способом, кроме как включением пользователей в эту фиксированную роль сервера. Для отсоединения базы данных используется следующая хранимая процедура sp detach db dbname dbname, skipchecks skipchecks Аргумент dbname указывает имя базы данных, которую необходимо отсоединить. Аргумент skipchecks управляет обновлением статистики при отсоедине- нии. Если значение этого аргумента равно TRUE, то обновление статистики пропускается, если же указывается FALSE, то обновление статистики будет выполнено.

Для отсоединения базы данных pubs нужно использовать следующую команду ЕХЕС sp detach db pubs После отсоединения базы данных вы получаете в свое распоряжение набор обычных файлов, с которыми можно выполнять обычные операции, в том числе и архивирование с использованием утилиты NT Backup. Для присоединения отсоединенной базы данных используется системная хранимая процедура sp attach db sp attach db dbname dbname , Pfilenamel filenameji , 16 Аргумент filename n должен содержать полный путь к первичному файлу присоединяемой базы данных.

Описание остальных файлов базы данных хранится в первичном файле. Если положение этих файлов было изменено, то необходимо явно указать их положение при вызове хранимой процедуры - через запятую в аргументе f i lename n. Количество файлов, которое можно присоединить с помощью хранимой процедуры sp attach db, ограничивается 16. Если необходимо выполнить подключение базы данных с большим количеством файлов, используется команда CREATE DATABASE FOR ATTACH. Для присоединения базы данных pubs нужно выполнить следующую команду sp detach db pubs . d mssql data pubs.mdf . d mssql data pubs log. Idf Если база данных состоит из одного файла данных и одного файла журнала транзакций, то ее можно присоединить, указав только первичный файл. База данных должна быть отсоединена от сервера с помощью хранимой процедуры sp detach db. Для присоединения такой базы данных используется следующая хранимая процедура sp attach sing1e file db dbname dbname . physname physicaljiame Сервер автоматически создаст для базы данных файл журнала транзакций и выполнит удаление из базы данных поддержку репликации, если она была установлена.

Для присоединения базы данных pubs с использованием только первичного файла необходима следующая команда sp attach single file db pubs, d mssql data pubs.mdf