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