Тема_10 (1122364)
Текст из файла
Средства журнализации ивосстановления баз данныхС.Д. Кузнецов. Базы данных. Тема 10План лекции (1)ВведениеБуферизация блоков базы данных восновной памяти и ее связь сжурнализациейУправление буферным пулом базы данныхФизическая синхронизацияПротокол упреждающей записи в журнал и его связьс буферизациейИндивидуальный откат транзакции17.12.2009С.Д.Кузнецов. Базы данных2ЖурнализВведение (1)Одним из основных требований к развитымСУБД является надежность хранения баз данныхЭто требование предполагает, в частности,возможность восстановления согласованногосостояния базы данных после любого родааппаратных и программных сбоевОчевидно, что для выполнения восстановленийнеобходима некоторая дополнительнаяинформацияВ подавляющем большинстве современныхреляционных СУБД такая избыточнаядополнительная информация поддерживается ввиде журнала изменений базы данных17.12.2009С.Д.Кузнецов.
Базы данных3ЖурнализВведение (2)Итак, общей целью журнализации изменений баз данных являетсяобеспечение возможности восстановления согласованногосостояния базы данных после любого сбояПоскольку основой поддержания целостного состояния базыданных является механизм транзакций,oжурнализация и восстановление тесно связаны с понятием транзакцииОбщими принципами восстановления являются следующие:результаты зафиксированных транзакций должны быть сохранены ввосстановленном состоянии базы данныхoрезультаты незафиксированных транзакций должны отсутствовать ввосстановленном состоянии базы данныхoт.е.
должно поддерживаться свойство долговечности (durability) транзакцийв противном случае состояние базы данных могло бы оказаться нецелостнымЭто и означает, что восстанавливается последнее по временисогласованное состояние базы данных17.12.2009С.Д.Кузнецов. Базы данных4ЖурнализВведение (3)Возможны следующие ситуации, при которых требуетсяпроизводить восстановление состояния базы данных: Индивидуальный откат транзакцииooТривиальной ситуацией отката транзакции является ее явноезавершение оператором ROLLBACKВозможны также ситуации, когда откат транзакции инициируетсясистемой•oПримерами могут быть возникновение исключительной ситуации вприкладной программе например, деление на ноль или выбор транзакции в качестве жертвы при разрушениисинхронизационного тупикаДля восстановления согласованного состояния базы данных прииндивидуальном откате транзакции нужно устранитьпоследствия операторов модификации базы данных, которыевыполнялись в этой транзакции17.12.2009С.Д.Кузнецов.
Базы данных5ЖурнализВведение (4)Восстановление после внезапной потери содержимогооперативной памятиoТакая ситуация может возникнуть при аварийномвыключении электрического питания, привозникновении неустранимого сбоя процессораoмягкий сбойнапример, срабатывании контроля основной памятии т.д.Ситуация характеризуется потерей той части базыданных, которая к моменту сбоя содержалась вбуферах оперативной памяти СУБД17.12.2009С.Д.Кузнецов. Базы данных6ЖурнализВведение (5)Восстановление после поломки основного внешнегоносителя базы данныхoжесткий сбойЭта ситуация при достаточно высокой надежностисовременных устройств внешней памяти может возникатьсравнительно редко, но, тем не менее, СУБД должна быть всостоянии восстановить базу данных даже и в этом случаеОсновой восстановления является архивная копия и журнализменений базы данных.Во всех трех случаях основой восстановления являетсяхранение избыточных данныхЭти избыточные данные хранятся в журнале, содержащемпоследовательность записей об изменении базы данных17.12.2009С.Д.Кузнецов.
Базы данных7ЖурнализВведение (6)Восстановление после поломки основного внешнегоносителя базы данныхoжесткий сбойЭта ситуация при достаточно высокой надежностисовременных устройств внешней памяти может возникатьсравнительно редко, но, тем не менее, СУБД должна быть всостоянии восстановить базу данных даже и в этом случаеОсновой восстановления является архивная копия и журнализменений базы данных.Во всех трех случаях основой восстановления являетсяхранение избыточных данныхЭти избыточные данные хранятся в журнале, содержащемпоследовательность записей об изменении базы данных17.12.2009С.Д.Кузнецов. Базы данных8ЖурнализВведение (7)Возможны два основных варианта ведения журнальнойинформацииВ первом варианте для каждой транзакции поддерживаетсяотдельный локальный журнал изменений базы данных этойтранзакциейЭти локальные журналы используются для индивидуальныхоткатов транзакций и могут поддерживаться в основной правильнее сказать, в виртуальнойпамяти СУБДКроме того, поддерживается общий журнал изменений базыданных, используемый для восстановления состояния базы данныхпосле мягких и жестких сбоев.17.12.2009С.Д.Кузнецов.
Базы данных9ЖурнализВведение (8)Данный подход позволяет быстро выполнятьиндивидуальные откаты транзакций,Поэтому чаще используется второй вариант –поддержка только общего журнала измененийбазы данных,но приводит к дублированию информации в локальныхи общем журналахкоторый используется и при выполнениииндивидуальных откатовЗдесь мы рассматриваем именно этот вариант17.12.2009С.Д.Кузнецов.
Базы данных10ЖурнализБуферизация блоков базы данных восновной памяти (1)Журнализация операций изменения базы данных тесносвязана не только с управлением транзакциями, но и с буферизацией блоков базы данных в основной памятиПо причинам объективно существующей разницы в скоростиработы процессоров и основной памяти и устройстввнешней памяти эта разница в скорости существовала, существует, и будетсуществовать всегдабуферизация блоков базы данных в основной памятиявляется единственным реальным способом достиженияприемлемой эффективности СУБДБез поддержки буферизации базы данных СУБД работалабы со скоростью магнитных дисков, т.е. на несколько порядков медленнее, чем если быобработка данных происходила в основной памяти17.12.2009С.Д.Кузнецов.
Базы данных11ЖурнализБуферизация блоков базы данных восновной памяти (2)Если бы каждая запись об изменении базы данных,которая должна поступить в журнал при выполнениилюбой операции обновления базы данных, реальнонемедленно перемещалась бы во внешнюю память,это привело бы к существенному замедлению работысистемыФактически, тогда каждая операция обновления базыданных выполнялась бы со скоростью магнитногодискаПоэтому записи в журнал тоже буферизуются:при нормальной работе буфер выталкивается во внешнююпамять журнала только при полном заполнении записями17.12.2009С.Д.Кузнецов. Базы данных12ЖурнализБуферизация блоков базы данных восновной памяти (3)Более точно, для буферизации записей журналаобычно используются два буфераПосле полного заполнения первый буфервыталкивается на магнитный диск, и покасовершается этот обмен,журнальные записи размещаются во втором буфереК моменту конца обмена заполняется второйбуфер,он выталкивается во внешнюю память,а журнальные записи снова размещаются в первомбуфере и т.д.17.12.2009С.Д.Кузнецов.
Базы данных13ЖурнализБуферизация блоков базы данных восновной памяти (4)Здесь идет речь об использовании буфероврасполагающихся именно в физической основной памяти,управляемой непосредственно СУБД, а не виртуальной памяти СУБД,управляемой операционной системойИспользование буферов виртуальной памяти является практическибессмысленным делом, поскольку в этом случае операционнаясистема, руководствуясь своими собственными стратегиямиуправления основной памяти, в любой момент можети базы данных, и журнала,удалить буферную страницу СУБД из основной памяти иперенести ее копию во внешнюю память в область свопингаТогда при следующей попытке записи СУБД в эту страницувозникнет прерывание, при обработке которого операционнаясистема подкачает страницу в основную память,выполнив совершенно не ожидаемый СУБД обмен с внешней памятью17.12.2009С.Д.Кузнецов.
Базы данных14ЖурнализБуферизация блоков базы данных восновной памяти (5)Нельзя надеяться на то, что операционнаясистема настолько грамотно управляет основнойпамятью, чтонужные страницы виртуальной памяти СУБД в нужноевремя будут находиться в основной памятиОперационная система просто не обладаетдостаточной информацией, чтобы всегдапринимать правильные решенияПравильно управлять своей буферной памятьюможет только сама СУБД, «отбирающая» уоперационной системы часть физическойосновной памяти для размещения в ней буферовбазы данных и журнала17.12.2009С.Д.Кузнецов.
Базы данных15ЖурнализБуферизация блоков базы данных в основной памяти (6)Управление буферным пулом базы данных (1)В развитыхвернее сказать, правильно организованныхСУБД поддерживается собственная стратегия замещения страницбуферного пулаЗадача, которую решает СУБД, очень похожа на задачу, которуюрешает операционная система при управлении виртуальнойпамятью.В случае операционной системы, если некоторый процесс требуетобеспечения доступа к странице виртуальной памяти,отсутствующей в основной памяти, и нет свободных страницосновной памяти,в соответствии с некоторым критерием выбирается некоторая занятаястраница основной памяти, освобождаетсяooт.е.
изымается из виртуальной памяти какого-то процесса и, может быть,копируется на диски подключается к виртуальной памяти запросившего процесса спредварительным считыванием с диска нужных данных17.12.2009С.Д.Кузнецов. Базы данных16ЖурнализБуферизация блоков базы данных в основной памяти (7)Управление буферным пулом базы данных (2)В случае СУБД, если при выполнении некоторой операции внекоторой транзакции требуется доступ к некоторому блокубазы данных, и копия этого блока отсутствует в буферномпуле, СУБД должнаoooвыделить какую-либо страницу буферного пула,считать в нее с диска требуемый блок базы данных ипредоставить доступ к этой странице запросившей операцииКонечно, в буферном пуле может не оказаться свободныхстраниц, и тогда СУБД в соответствии с некоторым критериемoooнаходит некоторую занятую страницу,освобождает еевозможно, выталкивает во внешнюю память17.12.2009С.Д.Кузнецов.
Базы данных17ЖурнализБуферизация блоков базы данных в основной памяти (8)Управление буферным пулом базы данных (3)Основная разница между этими случаямисостоит в критерии выборки занятой страницыдля «откачки»Не будем обсуждать здесь стратегии замещениястраниц, используемые в операционныхсистемахЗаметим лишь, что почти всегда операционнаясистема стремится заменить страницу, к которойпредположительно дольше всего не будет обращений,но, поскольку предвидение будущегоневозможно,оно аппроксимируется прошлым.17.12.2009С.Д.Кузнецов. Базы данных18ЖурнализБуферизация блоков базы данных в основной памяти (9)Управление буферным пулом базы данных (4)В частности, в одном из популярных алгоритмовзамещения страниц LRU (Least Recently Used)принимается предположение, чтодольше всего в будущем не потребуется та страница, ккоторой дольше всего не обращались в прошломВ стратегии замещения страниц буферного пулаСУБД тоже чаще всего используется некотораяразновидность алгоритма LRUНо СУБД располагает большей информацией остраницах буферного пула, чем операционнаясистема о страницах основной памяти17.12.2009С.Д.Кузнецов.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.