Восстановление после мягкого сбоя.




ЗАДАНИЯ

1. Исследовать работу с одной БД средствами СУБД Access. Изучить, каким образом осуществляется незаметная для пользователей работа для случаев:

- потерянных изменений;

- чтение грязных данных;

- неповторяющихся чтений;

- кортежей-фантомов.

Для каждой ситуации дать описание проведенного эксперимента, результатов его и сделать выводы.

2. На примере эксплуатации конкретной БД рассмотреть поведение СУБД, направленное на поддержание целостности БД, для случаев:

- отката транзакции;

- мягкого сбоя;

- жесткого сбоя (без его реализации).

 

Ход работы

I. Исследование работы с одной БД средствами СУБД Access.

1. Потеря изменений

Ситуация. Первая транзакция (Т1) изменяет объект БД А. До завершения Т1 вторая транзакция (Т2) также изменяет объект А. Т2 завершается оператором ROLLBACK (напр., из-за нарушения ограничения целостности). Тогда при повторном чтении объекта А Т1 не видит изменений объекта, произведенных ранее.

 

 

2. Чтение «грязных данных»

Ситуация. Т1 изменяет объект БД А. Параллельно с этим Т2 читает объект А. Т.к. операция изменения еще не завершена, Т2 видит несогласованные «грязные» данные.

Т2 читает таблицу

 

3. Неповторяющиеся чтение

Ситуация. Т1 читает объект БД А. До завершения Т1 Т2 изменяет объект А и успешно завершается оператором COMMIT. Т1 повторно читает объект А и видит его измененное состояние.

 

 

Т1 читает таблицу

Т1 повторно читает таблицу

 

 

4. Кортежи-фантомы

Ситуация. Т1 выполняет оператор А выборки кортежей отношения R с условием выборки S. До завершения Т1 Т2 вставляет в отношение R новый кортеж К, удовлетворяющий условию S, и успешно завершается. Т1 повторно выполняет оператор А, и в результате появляется кортеж, который отсутствовал при первом выполнении оператора.

1 выполнение

2 выполнение

Также, ошибка возникает при изменении структуры таблицы пользователем Т1, если пользователь Т2 в это время просматривает содержимое данной таблицы.

 

Ошибка возникнет, если пользователь Т1 попытается открыть окно конструктора, при просмотре пользователем Т2 содержимого данной таблицы.

II. Эксплуатация конкретной БД. Рассмотрение поведения СУБД, направленное на поддержание целостности БД.

1. Откат транзакции

Тривиальной ситуацией отката является ее явное завершение оператором ROLLBACK. Возможны также ситуации, когда откат инициируется системой.

 

2. Мягкий сбой

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

 

3. Жесткий сбой (без реализации)

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

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Опишите, какими средствами достигается изолированность пользователей в многопользовательских системах?

1. Отсутствие потерянных изменений.

2. Отсутствие чтения «грязных данных ».

3. Отсутствие неповторяющихся чтений.

4. Проблема кортежей-«фантомов».

2. Охарактеризуйте методы сериализации транзакций.

Сериализация транзакций — это механизм их выполнения по некоторому сериальному плану.

Практические методы сериализации транзакций основывается на учете трех конфликтов между транзакциями:

• W-W — Т2 пытается изменять объект, измененный не закончившейся Т1;

• R-W — Т2 пытается изменять объект, прочитанный не закончившейся Т1;

• W-R — Т2 пытается читать объект, измененный не закончившейся Т1.

Существуют два подхода к сериализации транзакций:

- метод синхронизационных захватов объектов БД;

- метод временных меток.

Суть обоих подходов состоит в обнаружении конфликтов транзакций и их устранении. Для каждого из подходов имеются две разновидности — пессимистическая и оптимистическая.

При применении пессимистических методов, ориентированных на ситуации, когда конфликты возникают часто, конфликты распознаются и разрешаются немедленно при их возникновении.

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

 

3. Какие функции журнала изменений БД?

Для восстановления согласованного состояния БД после аппаратных и программных сбоев поддерживается журнал изменений БД.

В основе поддержания целостного состояния БД - механизм транзакций. Общие принципы восстановления:

• результаты зафиксированных транзакций должны быть сохранены в восстановленном состоянии БД;

• результаты незафиксированных транзакций должны отсутствовать в восстановленном состоянии БД.

Возможны следующие ситуации, при которых требуется производить восстановление состояния БД:

Индивидуальный откат транзакции.

Потеря содержимого оперативной памяти (мягкий сбой).

Поломка основного внешнего носителя БД (жесткий сбой).

Во всех трех случаях основой восстановления является избыточное хранение данных. Эти избыточные данные хранятся в журнале, содержащем последовательность записей об изменении БД.

 

4. Какими средствами поддерживается целостность БД?

Различают два вида ограничений целостности: немедленно проверяемые и откладываемые.

Немедленно проверяемые ограничения целостности - такие ограничения, проверку которых бессмысленно или невозможно откладывать. Пример: возраст сотрудника - 150 лет. Они реализуются отдельным операторами языкового уровня СУБД. При их нарушениях не производится откат транзакции, а лишь отвергается соответствующий оператор.

Откладываемые ограничения целостности - ограничения на БД, а не на отдельные операции. Эти ограничения проверяются в конце транзакции, и их нарушение вызывает автоматическую замену оператора COMMIT на оператор ROLLBACK. В некоторых системах существует оператор насильственной проверки ограничения целостности внутри транзакции.

 

5. Опишите, как происходит взаимодействие с журналом при мягком и жестком сбоях.

Восстановление после мягкого сбоя.

Состояние внешней памяти БД называется физически согласованным, если страницы всех объектов соответствуют состоянию объекта либо после его изменения, либо до изменения. В журнале отмечаются точки физической согласованности БД — моменты времени, в которые во внешней памяти содержатся согласованные результаты операций, завершившихся до соответствующего момента времени, и отсутствуют результаты операций, которые не завершились, а буфер журнала вытолкнут во внешнюю память. Такие точкиназывают tpc (timeofphysicalconsistency - точки физической согласованности).



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: