Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УД ответы.docx
Скачиваний:
4
Добавлен:
25.04.2019
Размер:
749.51 Кб
Скачать

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

Не смотря на протокол Write Ahead Log, после мягкого сбоя не все физическое страницы базы данных содержат измененные данные, так как не все грязные страницы базы данных были вытолкнуты во внешнюю память. Когда гарантированно были вытолкнуты грязные страницы – это момент принятия последней контрольной точки.

Существует пять вариантов состояния транзакций по отношению к моменту последней контрольной точки I к моменту сбоя.

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

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

  3. Транзакция начата до принятия контрольной точки и не завершена в результате сбоя. Такую транзакцию необходимо откатить. Проблема, однако, в том, что часть страниц данных, измененных этой транзакцией, уже содержится во внешней памяти – те страницы, которые были обновлены до принятия контрольной точки. Следов изменений, внесенных после контрольной точки нет. Записи журнала транзакций, сделанные до принятия контрольной точки, вытолкнуты во внешнюю память. Те записи журнала, которые были сделаны после контрольной точки, отсутствуют во внешней памяти журнала.

  4. Транзакция начата после принятия контрольной точки и успешно завершена до сбоя системы. Записи журнала транзакций, относящиеся к этой транзакции, вытолкнуты во внешнюю память журнала. Изменения в базе данных, внесенные этой транзакцией. Полностью отсутствуют во внешней памяти базы данных. Такую транзакцию необходимо повторить целиком.

  5. Транзакция начата после принятия контрольной точки и не завершена в результате сбоя. Никаких следов этой транзакции нет ни во внешней памяти журнала транзакций, ни во внешней памяти базы данных. Для такой транзакции никаких действий предпринимать не нужно. Ее как бы и не было вовсе.

Выполнение восстановления сбоя осуществляется как часть процедуры перезагрузки системы. При перезагрузке транзакции Т2 и Т4 необходимо частично или полностью повторить, транзакцию Т3 - частично откатить. Для транзакций Т1 и Т5 никаких действий предпринимать не нужно.

При перезагрузке система выполняет следующие действия:

  1. Создается два списка транзакции (UNDO и REDO - изменить и повторить)/ в список UNDO заносятся все транзакции из последней записи контрольной точки, то есть все транзакции, выполнявшиеся в момент принятия контрольной точки. Список REDO остается пустым.

  2. Начиная с записи контрольной точки, просматривается вперед журнал транзакций

  3. Если в журнале транзакции обнаруживается запись о начале транзакции, то эта транзакций добавляется в список UNDO.

  4. Если в файле регистрации обнаруживается запись завершения транзакции, то эта транзакция добавляется в список REDO.

  5. КОГДА ДОСТИГАЕТСЯ КОНЕЦ ЖУРНАЛА ТРАНЗАКЦИЙ, ОБА СПИСКА АНАЛИЗИРУЮТСЯ, при этом из списка UNDO удаляются те транзакции, которые попали в список REDO. Таким образом, список изменится

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]