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

Часто администратору базы данных (dba) служб Службы Analysis Services необходимо на некоторое время перевести базу данных в режим «вне сети», а затем перевести ее в режим «в сети» на том же или на другом экземпляре сервера. Такие ситуации часто обусловлены потребностями предприятия, например необходимостью переместить базу данных на другой диск для повышения производительности, освободить место для увеличения размера базы данных или при обновлении какого-либо продукта. В этих и других случаях команды Attach и Detach позволяют администратору базы данных служб Службы Analysis Services переводить базу данных в режим «вне сети» и обратно в режим «в сети» с минимальными усилиями.

Команды Attach и Detach

Команда Attach позволяет перевести базу данных из режима «вне сети» в режим «в сети». База данных может быть присоединена как к исходному, так и к любому другому экземпляру сервера. При присоединении базы данных пользователь может указать для нее значение свойства ReadWriteMode. Команда Detach позволяет перевести базу данных на сервере в режим «вне сети».

Использование команд Attach и Detach

Команда Attach позволяет перевести в режим «в сети» существующую структуру базы данных. Если база данных присоединена в режиме ReadWrite, она может быть присоединена к экземпляру сервера только один раз. Если же база данных присоединена в режиме ReadOnly, она может быть присоединена к нескольким экземплярам сервера. Это, однако, не означает, что база данных может быть присоединена к одному экземпляру сервера более одного раза. Если попытаться сделать это (даже после копирования данных в другую папку), будет выдана ошибка.

Важное примечаниеВажно!

Если для отсоединения базы данных потребовался пароль, для ее присоединения необходим тот же пароль.

Команда Detach позволяет перевести в режим «вне сети» существующую структуру базы данных. При отсоединении базы данных можно указать пароль для защиты конфиденциальных метаданных.

Важное примечаниеВажно!

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

При отсоединении базы данных сервер выполняет следующие шаги.

Отсоединение базы данных в режиме чтения и записи

Отсоединение базы данных в режиме только для чтения

  1. Сервер выполняет запрос блокировки CommitExclusive в базе данных

  2. Сервер ожидает, пока все входящие транзакции завершатся фиксацией или откатом

  3. Сервер формирует все метаданные, необходимые для отсоединения базы данных

  4. База данных помечена как удаленная

  5. Сервер фиксирует транзакцию

  1. База данных помечена как удаленная

  2. Сервер фиксирует транзакцию

ПримечаниеПримечание
Нельзя сменить пароль для базы данных в режиме только для чтения. Если указать пароль для присоединяемой базы данных, уже защищенной паролем, возникнет ошибка.

Команды Attach и Detach должны выполняться в пределах одной операции. Они не могут сочетаться в одной транзакции с другими операциями. Кроме того, команды Attach и Detach являются атомарными транзакционными командами. Это означает, что только вся операция целиком может завершиться либо успешно, либо неуспешно. База данных не может остаться в незавершенном состоянии.

Важное примечаниеВажно!

Чтобы выполнить команду Detach, необходимы права администратора сервера или базы данных.

Важное примечаниеВажно!

Чтобы выполнить команду Attach, необходимы права администратора сервера.