Операционные системы -вопросы теории

       

Очередь исполняющихся транзакций



Рисунок 11.22. Очередь исполняющихся транзакций


Если произошел сбой системы, после перезагрузки запускается программа восстановления базы данных (Рисунок 11.23). Эта программа просматривает конец журнала.

  • Если она видит там испорченную запись, то игнорирует ее: сбой произошел во время записи в журнал.
  • Если все записи помечены как успешно выполненные транзакции, то сбой произошел между транзакциями: ничего особенно страшного не случилось; во всяком случае, ничего исправлять не надо.
  • Если найдена запись, которая отмечает начатую, но невыполненную транзакцию, то сбой произошел во время этой транзакции. Это наиболее неприятная ситуация, но журнал содержит достаточно информации для того чтобы или восстановить состояние базы данных до начала транзакции (выполнить откат назад (rollback)), или же доделать предполагавшиеся изменения.

Нужно отметить, что данные, необходимые для выполнения отката, могут иметь большой объем. Фактически это копия всех данных, подвергающихся Изменению в ходе транзакции. Многие СУБД, такие как ORACLE, хранят эти данные не в самом журнале, а в специальной области данных, называемой сегмент отката (rollback segment).



Содержание раздела