Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 47]

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

• Т5 транзакция начата после принятия контрольной точки и не завершена в результате сбоя.
Никаких следов этой транзакции нет ни во внешней памяти журнала транзакций, ни во внешней памяти базы данных.
Для такой транзакции никаких действий предпринимать не нужно, ее как бы и не было вовсе.
Восстановление системы после мягкого сбоя осуществляется как часть процедуры перезагрузки системы.
При перезагрузке системы транзакции
Т2 и Т4 необходимо частично или полностью повторить, транзакцию ТЗ частично откатить, для транзакций Т1 и Т5 никаких действий предпринимать не нужно.
При перезагрузке система выполняет следующие действия:
Создается два списка транзакций UNDO (отменить) и REDO (повторить).
В список UNDO заносятся все транзакции из последней записи контрольной точки (т.е.
все транзакции, выполнявшиеся в момент принятия контрольной точки).
Список REDO остается пустым.
В нашем случае будет: UNDO =
{Т2, ТЗ}, REDO = { }.
Начиная с записи контрольной точки просматривается вперед журнал транзакций.
Если в журнале транзакций обнаруживается запись о начале транзакции, то эта транзакция добавляется в список UNDO.
В нашем случае будет: UNDO =
{Т2, ТЗ, Т4}, REDO = { }.
Заметим, что следов транзакции Т5 в журнале транзакций нет.
47
[стр. 177]

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

 T5 транзакция начата после принятия контрольной точки и не завершена в результате сбоя.
Никаких следов этой транзакции нет ни во внешней памяти журнала транзакций, ни во внешней памяти базы данных.
Для такой транзакции никаких действий предпринимать не нужно, ее как бы и не было вовсе.
Восстановление системы после мягкого сбоя осуществляется как часть процедуры перезагрузки системы.
При перезагрузке системы транзакции
T2 и T4 необходимо частично или полностью повторить, транзакцию T3 частично откатить, для транзакций T1 и T5 никаких действий предпринимать не нужно.
При перезагрузке система выполняет следующие действия:
Создается два списка транзакций UNDO (отменить) и REDO (повторить).
В список UNDO заносятся все транзакции из последней записи контрольной точки (т.е.
все транзакции, выполнявшиеся в момент принятия контрольной точки).
Список REDO остается пустым.
В нашем случае будет: UNDO =
{T2, T3}, REDO = { }.
Начиная с записи контрольной точки просматривается вперед журнал транзакций.
Если в журнале транзакций обнаруживается запись о начале транзакции, то эта транзакция добавляется в список UNDO.
В нашем случае будет: UNDO =
{T2, T3, T4}, REDO = { }.
Заметим, что следов транзакции T5 в журнале транзакций нет.
 Если в файле регистрации обнаруживается запись COMMIT об окончании транзакции, то эта транзакция добавляется в список REDO.
В нашем случае будет: UNDO = {T2, T3, T4}, REDO = {T2, T4}.
Заметим, что записи о конце этих транзакций имеются во внешней памяти журнала транзакций в соответствии с минимальным требованием выталкивания записей журнала при фиксации транзакции.
 Когда достигается конец журнала транзакций, оба списка анализируются.
При этом из списка UNDO удаляются те транзакции, которые попали в список REDO.
В нашем случае будет: UNDO = {T3}, REDO = {T2, T4}.
 После этого система просматривает журнал транзакций назад, начиная с момента контрольной точки и откатывая все транзакции из списка UNDO.
В нашем случае будут откатываться те операции транзакции T3, которые были выполнены до принятия контрольной точки.
 Окончательно, система просматривает журнал транзакций вперед, начиная с момента контрольной точки, и повторно выполняет все операции транзакций из списка REDO.
В нашем случае, система выполнит повторно все операции транзакции T4 и те операции транзакции T2, которые были выполнены после принятия контрольной точки.
Восстановление после жесткого сбоя При жестком сбое база данных на диске нарушается физически.
Основой восстановления в этом случае является журнал транзакций и архивная копия базы данных.
Архивная копия базы данных должна создаваться периодически, а именно с учетом скорости наполнения журнала транзакций.
Восстановление начинается с обратного копирования базы данных из архивной копии.
Затем выполняется просмотр журнала транзакций для выявления всех транзакций, которые закончились успешно до наступления сбоя.
(Транзакции, закончившиеся откатом до наступления сбоя, можно не рассматривать).
После этого по журналу транзакций в прямом направлении повторяются все успешно законченные транзакции.
При этом нет необходимости отката транзакций, прерванных в

[Back]