Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

4.6. Режимы работы базы данных

Режимы работы баз данных SQL Server 2005, ONLINE, OFFLINE, EMERGENCY, READ-ONLY, READ-WRITE, MULTI_USER, RESTRICTED_USER, SINGLE_USER, переключение режимов

Для баз данных SQL Server 2005 предусмотрено несколько режимов работы (которые называются также состояниями базы данных, database state). Настраиваются они при помощи вкладки Options окна свойств базы данных или при помощи команды ALTER DATABASE (за исключением режима ONLINE/OFFLINE, который изменяется не на вкладке Options, а из контекстного меню базы данных в окне Object Explorer). Можно выбрать следующие режимы работы базы данных:

q      режимы ONLINE/OFFLINE/EMERGENCY. Режим ONLINE (оперативный режим) — это нормальный рабочий режим. Если перевести базу данных в режим OFFLINE (автономный режим), то:

·                база данных станет недоступной для пользователей;

·                на нее больше не будет расходоваться оперативная память сервера;

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

Режим EMERGENCY (аварийный) — это новый режим, который появился в SQL Server 2005. Если перевести базу данных в режим EMERGENCY, то:

·                она станет доступной только на чтение;

·                будет отключено протоколирование (т. е. запись в журналы транзакций);

·                к базе данных смогут обращаться только системные администраторы (т. е. члены серверной роли sysadmin).

Этот режим рекомендуется использовать для целей диагностики базы данных, если вы подозреваете, что в ней возникли проблемы;

q      режимы READ-ONLY/READ-WRITE. По умолчанию все базы данных находятся, конечно, в режиме READ-WRITE (чтение и запись). Перевод базы данных в режим READ-ONLY (только чтение) лишает пользователей возможности вносить изменения в данные, но серьезно ускоряет считывание данных за счет того, что никакие блокировки не накладываются. Чтобы перевести базу данных в режим READ-ONLY, нужно вначале отключить всех пользователей. В этом режиме часто работают архивные хранилища данных Data Warehouses (на время пакетной загрузки данных их режим меняется на READ-WRITE);

q      режимы MULTI_USER/RESTRICTED_USER/SINGLE_USER. Режим MULTI_USER (многопользовательский) — это обычный режим, в нем по умолчанию работают все базы данных. В режиме RESTRICTED_USER (ограничения доступа пользователей) в базу данных допускаются только пользователи, которые принадлежат к роли базы данных db_owner или к одной из серверных ролей sysadmin или dbcreator. Это режим используется в ситуации, когда работа пользователей с базой данных нежелательна (массовая загрузка данных, обновление структуры, перестройка индексов), но нужно иметь возможность открывать несколько соединений с базой данных. В режиме SINGLE_USER (однопользовательский) разрешается только одно подключение к базе данных. Этот режим может использоваться, например, в разных аварийных ситуациях, когда производится восстановление базы данных.

Изменение режима работы базы данных требует отключения пользователей, которые в настоящее время работают с базой данных. Если в базе данных пользователи не работают, то изменение режима пройдет без каких-либо проблем. Если же в настоящее время к этой базе данных открыты соединения, то вам придется либо ответить на вопросы на графическом экране SQL Server Management Studio, либо предусмотреть соответствующий параметр в команде ALTER DATABASE. Вариантов изменения режима работы базы данных у вас четыре:

q      вообще ничего не указывать. В этом случае команда ALTER DATABASE будет ждать бесконечное время, пока пользователи не закончат в базе данных свою работу. После этого команда переведет базу данных в нужный режим (если вы не хотите ждать, выполнение команды можно прервать);

q      попытаться перевести базу данных в нужный режим без ожидания. Для этого используется параметр WITH NO_WAIT. Так же, как и в первом случае, переход в нужный режим произойдет, если нет пользовательских подключений, которые этому мешают. Если команда ALTER DATABASE не может изменить режим работы немедленно, она не будет ждать, а сразу вернет ошибку;

q      указать, сколько секунд будет дано пользователям для завершения работы и до разрыва их соединений. Это делается при помощи параметра WITH ROLLBACK AFTER количество_секунд. Например, если вы хотите дать всем пользователям без административных прав 10 минут на завершение, то команда может выглядеть так:

ALTER DATABASE testdb SET RESTRICTED_USER WITH ROLLBACK AFTER 600;

На работу пользователей, которые подключились к базе данных с административными правами (т. е. с правами специальной роли db_owner) эта команда не повлияет.

q      отключать пользователей немедленно, откатывая их незавершенные транзакции. Для этой цели используется параметр WITH ROLLBACK IMMEDIATE.

Можно рассмотреть еще один вариант, когда вы просто отслеживаете соединения всех пользователей через окно Activity Monitor (оно доступно из контейнера Management (Управление) в окне SQL Server Management Studio), а просматриваете, что они делают, а затем отключаете каждого по отдельности (возможно, предварительно предупредив их).

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru