Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

2.4. Восстановление бд

Возникновение сбоя в аппаратном или программном обеспечении может вызвать необходимость восстановления и быстрого возращения в состоя­ние, по возможности близкое к тому, которое было перед возникновением сбоя. Причинами сбоев могут являться отключение питания, отказ аппаратуры, системно-программные ошибки, ошибки пользователей в управлении данными и т.д. К числу причин, вызывающих необходимость восстановле­ния, можно отнести также и возникновение тупиковой ситуации.

2.4.1. Уровни восстановления.

Укрупнено можно выделить три уровня восстановления;

1. Оперативное восстановление. Характеризуется возможностью восстановления на уровне отдельного логического элемента работы при аномальном окончании управления данны­ми (ошибка в программе, ошибка в аргументе и т.д.).

2. Промежуточное восстановление .Если возникают аномалии в системе (системно-программные ошибки, сбой аппаратного обеспечения не связанный с разрушением базы данных), то требуется восстановить состояние всех выполняемых логических эле­ментов работы на момент возникновения сбоя.

3. Длительное восстановление. При разрушении базы данных в результате дефекта на диске осущест­вляют восстановление с помощью копии базы данных. Затем воспроизводят результаты выполненных с момента снятия копии логических элементов ра­боты и возвращают систему в состояние на момент разрушения.

2.4.2. Восстановление и логический элемент работы

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

Рассмотрим операцию индексации размера оклада всем работникам. Перед началом данной операции размер оклада каждого работника соответствует ог­раничениям целостнос­ти. В ходе операции ЭВМ последовательно из­меняет размер оклада, поэто­му существует состояние, когда оклад бу­дет повышен только части работ­ников, а у других работников оста­нется старое значение оклада. Такое состояние не является целост­ным. После завершения операции изменения размера оклада база данных возвращается в целостное с о с т о я н и е .

Прекращение выполнения логического элемента работы вследст­вие по­явления сбоя нарушает целостность БД. Однако даже если ре­зультаты та­кого выполнения логического элемента работы потеряны, то имеется воз­можность их воспроизведения на момент возникновения сбоя. Таким обра­зом, понятие "логический элемент работы" играет важную роль при восс­тановлении.

Требования к лэр

1. Необходимо, чтобы логический элемент работы или выпол­нялся полностью, или совершенно не выполнялся.

2. Необходимо, чтобы ЛЭР допускал возможность возврата в первона­чальное состояние.

3. Необходимо иметь возможность воспроизведения процесса выполнения ЛЭР.

При появлении сбоя осуществлять возврат удобнее не в начало логи­ческого элемента работы, a в некоторое промежуточное положе­ние. Точку, куда происходит такой возврат, называют точкой фиксации (контрольной точкой). Пользователь может устанавливать в про­цессе выполнения ЛЭР произвольное количество контрольных точек.

Откат и раскрутка ЛЭР. Основным средством, используемым при восстановлении, яв­ляется системный журнал, в котором регистрируются все изменения, осуществляе­мые в БД каждым ЛЭР. Возврат ЛЭР в начальное состоя­ние состоит в анну­лирование всех изменений, которые он осуществил в базе данных в про­цессе своего выполнения. Такую операцию назы­вают откатом. Для воспро­изведения результатов выполнения ЛЭР можно воспользоваться системным журналом и восстановить значе­ния проведенных изменений в порядке их возникновения, либо по­вторно выполнить ЛЭР.

Воспроизведение результатов выполнения элемента с использо­ванием системного журнала называют раскруткой. В любом случае эта операция является громоздкой. Однако такой способ можно ис­пользовать для устра­нения тупиковой ситуации, когда производится откат одного из логичес­ких элементов работы.

Для повышения эффективности выполнения отката ЛЭР записи систем­ного журнала группируют по всем объектам, подлежащим изме­нению. По окончании ЛЭР копию можно отбросить.

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

При двухстраничном способе нет необходимости фиксировать в журна­ле каждое изменение значений изменяемых объектов. Начальное значение изменяемого объекта можно зафиксировать в журнале только один раз -при первоначальном его изменении ЛЭР. Необходи­мость записи в журнал появляется также при прохождении точки фиксации.

Возможно, появление сбоя непосредственно перед операцией, связан­ной с отображением изменений в базе данных. Поэтому факти­ческое внесе­ние изменений в БД откладывается до завершения ЛЭР. Информация о необ­ходимых изменениях накапливается в специаль­ном файле, который можно считать аналогом системного журнала.

Соседние файлы в предмете Базы данных