КАТЕГОРИИ: Архитектура-(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; Просмотров: 524; Нарушение авторских прав?; Мы поможем в написании вашей работы! |