Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Транзакции и восстановление

Транзакции представляют собой основную единицу восста­новления в системах управления базами данных.

Диспетчер восстановления СУБД должен обеспечивать поддерж­ку следующих основных свойств транзакций: неразрывности и устойчивости при наличии сбоев в системе. Также он должен обес­печить, чтобы при восстановлении после сбоя для каждой от­дельной транзакции в базе данных либо постоянно фиксирова­лись все внесенные ею изменения, либо не фиксировалось ни одно из них.

Ситуация осложняется тем фактом, что запись в базу данных не представляет собой неразрывное действие (выполняемое за один шаг). Следовательно, существует вероятность того что, ког­да выполнение транзакции будет завершено посредством фикса­ции, внесенные ею изменения не будут реально отражены в базе данных по той простой причине, что они еще не достигли ее файлов.

При выполнении операции считывания информации СУБД осуществляет следующие типовые действия:

• определяет дисковый адрес блока данных, содержащего за­пись с первичным ключом х;

• считывает блок данных с диска и помещает его в буфер СУБД, находящийся в оперативной памяти;

• копирует данные из буфера СУБД и помещает их в динами­ческую таблицу.

При выполнении операции записи информации СУБД осуще­ствляет следующие действия:

• определяет дисковый адрес блока данных, содержащего за­пись с первичным ключом х;

• считывает блок данных с диска и помещает его в буфер СУБД, находящийся в оперативной памяти;

• копирует данные из динамической таблицы и помещает их в буфер СУБД;

• выводит блок данных из буфера в оперативной памяти и по­мещает их на диск.

Буферы СУБД занимают определенную часть оперативной па­мяти и используются для обмена данными со вторичной памятью системы.

Только после выгрузки соответствующего буфера во вторич­ную память можно считать, что выполненные операции обновле­ния приобрели постоянный характер.

Выгрузка буферов в базу данных может осуществляться по спе­циальной команде (например, по команде фиксации транзакции) или же автоматически, как только буфер будет заполнен.

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

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

Если транзакция уже выдала команду фиксации, то для обес­печения устойчивости ее результатов диспетчер восстановления должен выполнить ее повторно (redo), чтобы восстановить все внесенные изменения. Эту операцию часто называют накатом.

С другой стороны, если на момент отказа системы транзакция еще не была зафиксирована, диспетчер восстановления должен отменить (undo) любые ее результаты, т.е. выполнить их откат.

Выполнение отката только одной транзакции называется час­тичным откатом.

Выполнение отката всех активных транзакций называется гло­бальным откатом.

<== предыдущая лекция | следующая лекция ==>
Восстановление базы данных | Управление буферами базы данных
Поделиться с друзьями:


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


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



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




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