Чтобы база данных стала недоступной для обычных пользователей, администратор ее закрывает, размонтирует, отсоединяя от экземпляра, а затем останавливает экземпляр. В процессе останова Oracle7 закрывает составляющие базу данных файлы ОС. Сервер базы данных Oracle7 выполняет запуск экземпляра, чтобы сделать систему доступной для использования, и останавливает его, чтобы перевести ее в автономное состояние.
После запуска администратором экземпляра базы данных и ее открытия привилегированные пользователи могут подключиться к базе и создать новый сеанс. Сеанс с базой данных можно рассматривать как время, прошедшее между подключением пользователя к экземпляру базы данных и отключением от него. Сеанс в базе данных аналогичен сеансу у врача — когда вы входите в кабинет, сеанс начинается, а когда выходите — заканчивается.
Файлы параметров и запуск экземпляра.
Каждый раз, когда администратор начинает новый сеанс, Oracle7 для настройки конфигурации нового экземпляра считывает файл параметров инициализации. Например, администратор может установить разные параметры для управления размером буферов памяти экземпляра.
Управление частичным доступом к базе данных с помощью оперативно доступных и автономных табличных областей.
Администратор может также управлять доступностью информации в открытой базе на базе табличных областей. Если табличная область оперативно доступна, то привилегированные пользователи могут опрашивать и модифицировать таблицы в табличной области, Однако, если табличная область находится в автономном состоянии, использовать данные в табличной области не может никто.
Управление доступностью табличной области Oracle7 может оказаться для многих административных операций весьма полезным.
Если все табличные приложения находятся в табличной области, то администратор может эффективно остановить приложение, переведя его табличную область приложения в автономное состояние.
Предположим, что табличная область содержит архивные данные, полезные лишь в очень редких случаях, а администратору понадобилась память на диске для хранения данных других табличных областей. Чтобы освободить на диске некоторое место, администратор может перевести табличную область с архивными данными в автономное состояние, а затем удалить с диска архивные данные. Администратор должен позаботиться о том, чтобы создать резервные копии файлов данных автономной архивной табличной области и сохранить их в надежном месте. Освободившееся на диске место он может использовать для хранения информации других табличных областей.
Администраторы СУБД Oracle7 должны быть единственными пользователями, управляющими доступностью базы данных и ее табличных областей.
7.6. Архивация и восстановление данных.
Вероятно, каждому из нас приходилось терять важный файл. Случайности и ошибки неизбежны, поэтому администратору нужно быть готовым к тому, чтобы восстановить данные. Следующие несколько разделов познакомят читателя с различными механизмами защиты, встроенными в сервер базы данных Oracle7
Защита транзакций: журнал транзакций.
В журнале полетов коммерческого авиалайнера записывается все, что происходит во время полета в кабине пилотов. Почти не поддающаяся разрушению маленькая коробочка (“черный ящик”) регистрирует информацию на случай авиакатастрофы. После катастрофы его можно исследовать и выяснить причину. Oracle7 также ведет журнал, где регистрируются происходящее в базе данных изменения. Каждый раз, когда SQL-оператор вносит изменение в базу данных, Oracle7 записывает его в журнал транзакций (который называется также журналом отмены). Если пользователь завершает транзакцию, Oracle7 немедленно записывает данные в журнал, подтверждая, что транзакция и ее изменения стали постоянными.
Oracle7 использует журнал транзакций для восстановления в случае разных сбоев. Например, если во время работы экземпляра базы данных происходит сбой питания, а Oracle7 еще не записал файлы данных (то есть некоторые несохраненные данные), не беспокойтесь. При следующем запуске экземпляра Oracle7 автоматически выполняет восстановление базы данных в то состояние, которое она имела в результате последней завершенной транзакции перед сбоем. Для восстановления потерянных транзакций Oracle7 применяет изменения, зарегистрированные в журнале транзакций.
О том как Огасlе7 в случае серьезных сбоев использует журнал транзакций, архивные файлы данных и сегменты отката, рассказывается ниже в разделе “Восстановление базы данных”. Но сначала расскажем немного о журнале транзакций.
Структура журнала транзакций.
Журнал транзакций базы данных содержит две или более группы файлов регистрации фиксированного размера или членов группы, которые Oracle7 использует для физического сохранения изменений в базе данных. Физическая структура типичного журнала транзакций базы данных иллюстрируется рис.5 Журнал транзакций может иметь две (или более) группы. После того как транзакции заполняют одну группу, Oracle7 для продолжения регистрации происходящих в базе данных изменений переключается на следующую доступную группу. Тем временем Oracle7 автоматически архивирует (создает резервные копии) заполненные группы транзакций. Причем это делается параллельно, не оказывая влияния на текущий процесс транзакций. Повторное циклическое использование групп транзакций позволяет Oracle7 отвести для журнала транзакций небольшую фиксированную область диска. В результате архивации заполненных групп транзакций создается постоянный автономный журнал последовательных транзакций.
Поскольку механизм восстановления является жизненно важным компонентом Oracle7 , сам он также имеет средства защиты. Для защиты от единичного отказа, например, сбоя диска, администратор может задать зеркальное отображение групп журнала (групп регистрации) путем создания группы с несколькими членами, которые физически помещаются на разные диски. Oracle7 регистрирует транзакции в зеркально отображаемых группах, записывая изменения параллельно во все файлы группы. Если диск выходит из строя, один из файлов группы на поврежденном диске становится недоступным. Однако Oracle7 это не останавливает: он продолжает регистрировать изменения в других, неиспорченных, файлах текущей группы регистрации.
Архивация базы данных.
С учетом возможных проблем, подобных сбою диска, его форматированию или удалению файла, администратору требуется для восстановления базы данных не только журнал транзакций, но и физические копии, составляющих базу данных, файлов.
Архивация файлов данных.
Файлы данных Oracle7 содержит все табличные данные СУБД. Когда пользователь модифицирует данные в таблицах или добавляет к базе данных новые объекты, Oracle7 для регистрации этих изменений обновляет файлы данных. Администратор может регулярно сохранять файлы данных, поддерживая их относительно свежие копии. Для сохранения файлов данных Oracle7 предоставляет администратору несколько возможностей. Простейшая из них — это копирование всех файлов после закрытия базы данных. Однако для многих систем требуется непрерывное функционирование. Остановка базы данных для регулярного выполнения архивации в этом случае неприемлема. Для таких требующих постоянного доступа систем средство архивации оперативной доступной таблицы Oracle7 позволяет копировать файлы данных во время работы и использования СУБД.
Архивация других файлов.
Кроме файлов данных и файлов журналов всегда следует иметь копию файлов параметров базы данных. Архивировать следует и управляющий файл базы данных. Это маленький файл, который Oracle7 использует для отслеживания физической структуры базы данных, сохранения имен всех файлов данных и журналов и текущей последовательности регистрации в журнале транзакций. Oracle7 использует управляющий файл при запуске базы данных для идентификации данных СУБД и файлов журналов. При восстановлении он управляет применением транзакций групп регистрации. Аналогично группам регистрации Oracle7 позволяет администратору конфигурировать для зеркального отображения и защиты от единичного сбоя всю базу данных. Однако сохранять копию управляющего файла базы данных необходимо также при каждом изменении ее физической структуры (например, добавлении нового файла данных или журнального файла), так как в случае сбоя все копии управляющего файла могут запортиться.
Восстановление базы данных после сбоев диска.
Хорошо, если никто случайно не отформатирует жесткий диск и не испортит его, повредив базу данных Oracle7. Но если такая неприятность случится, администратор может восстановить базу дынных, сохранив всю работу. Посмотрим, как это делается:
Администратор при необходимости исправляет проблемы с аппаратурой (например, заменяет неисправный жесткий диск новым).
Администратор восстанавливает испорченные файлы данных, копируя их последние архивные копии и, при необходимости, восстанавливая на любом доступном диске архивные группы регистрации транзакций.
Администратор запускает процесс восстановления, включая восстановление с применением транзакций и восстановление с отменой. Восстановление с применением означает применение к архивным копиям испорченных данных необходимых групп журнала транзакций. Восстановление с отменой предусматривает отмену незавершенных транзакций, оставшихся после восстановления с применением.
После того как администратор закончит процесс восстановления, Oracle7 оставляет базу данных в согласованном (в смысле транзакций) состоянии — в том состоянии, в котором она была после последней сохраненной транзакции.
Мы рассмотрели описание структуры БД Oraсle7, важные моменты работы сервера (создание и администрирование БД). Для того, чтобы больше узнать о работе сервера Orakle7, необходимо обратиться к книге Стива Бобровски “Oraсle7. Вычисления. Клиент/сервер”, а также к технической документации по работе сервера БД Oraсle7.