Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

Журнализация и откаты

Журнализация – средство восстановления данных при сбоях. Журнализация – ведение специальной структуры, в которую записываются все изменения, происходящие в БД.

Модно выделить 3 случая, когда восстановление данных необходимо:

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

– мягкий сбой (программный сбой, перебой в питании);

– жёсткий сбой (утрата внешнего носителя).

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

Изменения в журнал вносить необходимо согласованным образом – алгоритм WAL (Write Ahead Log), т.е. запись первоначально в журнал. Это предполагает простой способ: если транзакция завершается успешно, то выталкивание буфера журнала и выталкивание из буфера данных тех страниц, которые были изменены данной транзакции.

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

Начало списка: для незакончившейся транзакции – это запись о последнем изменении, которое выполнено; для закончившейся транзакции – это запись о конце транзакции, которая обязательно вытолкнута во внешнюю память.

Конец списка: запись о первом изменении.

Алгоритм отката:

– выборка очередной записи;

– выполнение обратных действий (INSERT«DELETE);

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

– когда достигается конец списка, вносится запись о завершении отката.

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

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

 

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

Т1 – ничего;

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

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

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

Т5 – ничего.

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

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

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

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

 

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

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

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

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

 

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

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

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

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

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

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




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


Дата добавления: 2014-12-25; Просмотров: 502; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.