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

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

Для корректного выполнения логических операций необходимо, чтобы во внешней памяти всегда был набор физически согласованных страниц. Набор физических страниц должен описывать объект БД либо после изменения, либо до изменения. Чтобы отмечать состояние согласованности БД вводится понятие 'точка физической согласованности'. Эти точки отмечают моменты времени, когда во внешней памяти отмечаются согласованные результаты изменений.

 

В случае мягкого сбоя должно происходить восстановление ОП. ОП восстанавливается то точкам согласованности из внешней памяти. Восстановление транзакций:

Т1 – ничего;

Т2 – повторно выполнить те операции, которые должны быть выполнены после точки согласованности (redo);

Т3 – корректно выполнить операцию отката (undo) и, если необходимо, то произвести повторные действия с этой транзакции;

Т4 – выполнить полную повторную прямую интерпретацию (redo);

Т5 – ничего.

Для фиксации точек согласованности существует 2 подхода:

1. теневой механизм;

2. журнализация/учёт постраничных изменений БД.

Теневой механизм

 

При открытии файла с БД создаётся таблица отображения (ТО) номеров логических блоков в физические блоки внешней памяти. При модификации любого логического блока во внешней памяти выделяется новый блок, в котором эти изменения отражаются. И эти изменения фиксируются в текущей ТО во внешней памяти. Во внешней памяти поддерживается копия ТО – это теневая таблица. Теневая таблица остаётся неизменной до тех пор, пока не будет закрыт соответствующий файл. РИС.*.

Использование теневого механизма: периодически выполняется операция, которая устанавливает физическую согласованность. Установка физической согласованности – check point. Смысл этой операции состоит в том, что все логические операции над БД завершаются, все буферы выталкиваются во внешнюю память, текущая ТО заменяет собой теневую таблицу. Здесь восстановление происходит мгновенно: текущая ТО восстанавливается по теневой.

Проблема: перерасход внешней памяти: восстанавливается вся ВЗУ, когда достаточно всего-навсего восстановить согласованный набор внешних страниц.

Журнализация постраничных изменений

 

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

С каждой страницей данных связывается метка о сделанных изменениях.

Если страница не получила изменений, то это не сохраняется; если есть изменения, то надо записать эту страницу в ВЗУ.

Вводят 2 журнала:

– глобальный журнал транзакций;

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








Дата добавления: 2014-12-20; просмотров: 695;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.