Фуфаев - Разработка и эксплуатация удалённых БД (1084483), страница 40
Текст из файла (страница 40)
Выполнение отката всех активных транзакций называется глобальным откатом. 201 13.3. Управление буферами базы данных Организация управления буферами базы данных играет важную роль в процессе восстановления информации. Рассмотрим применяемые для этого методы. Процессы управления буферами базы данных, которые применяются для считывания и записи страницы данных во вторичную память, осуществляются специальной программой, называемой диспетчером буферов.
Такая программа должна предусматривать считывание страниц с диска в буферы до полного их заполнения, а затем применение той или иной стратегии замещения для определения того, какой буфер (буферы) необходимо принудительно записать на диск, чтобы освободить место для новых страниц, которые должны быть считаны с диска.
Один из алгоритмов управления предусматривает применение двух буферов переменных — р1пСоцпг и г)пгу. Этим переменным, соответствующим каждому буферу базы данных, первоначально присваивается нулевое значение. При получении запроса на считывание страницы с диска диспетчер буферов выполняет проверку для определения, не находится ли эта страница в одном из буферов. Если страница не находится ни в одном из буферов, то диспетчер буферов выполняет следующие действия; ° выбирает буфер, предназначенный для замещения (называемый замел(аемым буфером), и увеличивает значение переменной на единицу; ° если переменная г)(ггу равна нулю, производит запись буфера на диск; ° считывает страницу с диска в буфер замещения и присваивает переменной г(пту нулевое значение.
При поступлении повторного запроса к одной и той же странице соответствующее значение р1пСоппг увеличивается на единицу. После того как система сообщит диспетчеру буферов, что применение этой страницы закончено, соответствующее значение р(пСоипг уменьшается на единицу. Кроме того, система может сообщить диспетчеру буферов, что в содержимое страницы внесено изменение, поэтому переменной Йпу присваивается ненулевое значение, т.е. страница отмечается как «грязная» — требующая записи на диск. После того как значение р1пСоппг станет нулевым, страница становится незакрепленной и может быть записана на диск.
Приведем правила восстановления базы данных при записи страниц на диск: ° правило конфискации позволяет диспетчеру буферов записывать содержимое буфера на диск прежде, чем транзакция выполнит фиксацию (буфер при этом не закреплен). Иными словами, 202 диспетчер буферов может «отнять» страницу, принадлежащую транзакции. Правило, противоположное данному, запрещает конфискацию страниц; ° правило принудительной записи гарантирует, что все страницы, модифицированные в ходе транзакции, будут немедленно записаны на диск после фиксации транзакции. Правило, противоположное данному, не требует принудительной записи страниц. На практике проще всего реализовать подход к восстановлению БД, предусматривающий использование правила, запрещающего конфискацию страниц, и правила принудительной записи.
При использовании правила, запрещающего конфискацию страниц, не требуется выполнения отката транзакции, завершившейся аварийно, поскольку в этом случае внесенные изменения еще не были записаны на диск. При этом применение правила принудительной записи гарантирует, что при возникновении аварии в системе не придется выполнять накат изменений, внесенных зафиксированной транзакцией, так как все изменения после фиксации транзакции немедленно записываются на диск. Здесь правило, запрещающее конфискацию страниц, используется в протоколе отложенного восстановления результатов обновления. С другой стороны, правило, допускающее конфискацию страниц, имеет определенное преимущество перед правилом, не допускающим такую конфискацию. Данное преимущество заключается в том, что позволяет избежать необходимости распределения объема буферною пространства, который может потребоваться для хранения всех копий страниц обновляемых многочисленными параллельными транзакциями.
Типовая структура СУБД должна предоставлять следующие функции восстановления: ° механизм резервного копирования, предназначенный для периодического создания резервных копий базы данных; ° средства ведения журнала, в котором фиксируются текущее состояние транзакций и вносимые в базу данных изменения; ° фиксацию создания контрольных точек, обеспечивающую перенос выполняемых в базе данных изменений во вторичную память с целью сделать их постоянными; ° диспетчера восстановления, обеспечивающею восстановление согласованного состояния базы данных, нарушенного в результате отказа. 13.4.
Механизм резервного копирования Любая СУБД должна предоставлять механизм, позволяющий создавать резервные копии базы данных и файла ее журнала через установленные интервалы времени. 203 Резервное копирование может выполняться как для всей базы данных в целом, так и для изменившейся ее части. В последнем случае в копию помещаются сведения только об изменениях, накопившихся с момента создания предыдущей полной или измененной резервной копии системы. Как правило, резервные копии создаются на автономных носителях. Файл журнала.
Для фиксации хода выполнения транзакций СУБД использует специальный файл, который называют журналом. Этот файл содержит сведения обо всех обновлениях, выполненных в базе данных. В файл журнала помешают записи о транзакциях и записи контрольных точек. Записи о транзакциях включают в себя: е идентификатор транзакции; ° тип записи журнала (начало транзакции, операции вставки, обновления или удаления, отмену или фиксацию транзакции); ° идентификатор элемента данных, вовлеченного в операцию обработки базы данных (операции вставки, удаления и обновления); ° копию элемента данных до операции, т.е.
его значение до изменения (только операции обновления и удаления); ° копию элемента данных после операции, т.е, его значение после изменения (только для операций обновления и вставки); ° служебную информацию файла журнала, содержашую указатели на предыдущую и следуюшую записи журнала для этой транзакции (все операции). Создание контрольных точек. Помешаемая в файл журнала информация предназначена для использования в процессе восстановления системы после отказа.
Однако при возникновении отказа может отсутствовать информация о том, с какого прошедшего момента необходимо начинать поиск в файле журнала, чтобы не выполнить накат транзакций, которые завершились с успешной фиксацией в базе данных. Для ограничения объема поиска и последовательной обработки информации в файле журнала используют метод создания контрольных точек. Контрольная точка — момент синхронизации между базой данных и журналом регистрации транзакций, при котором все буферы системы принудительно записываются в ее вторичную память. Контрольные точки создаются через установленный интервал времени и предусматривают выполнение следующих действий: ° перенос всех имеющихся в оперативной памяти записей журнала во вторичную память; ° запись всех модифицированных блоков в буферах базы данных во вторичную память; ° помещение в файл журнала записи контрольной точки, которая содержит идентификаторы всех транзакций, активных в момент ее создания.
204 Если транзакции выполняются последовательно, то после возникновения отказа файл журнала просматривается в целях обнаружения последней транзакции, выполненной до создания последней контрольной точки. Если транзакции выполняются параллельно, требуется выполнение наката всех транзакций, которые были зафиксированы со времени создания контрольной точки, и отката всех транзакций, которые были активны в момент аварии. Контрольные вопросы ! .
В каких случаях производят восстановление базы данных? 2. Какие устройства называются первичной памятью и какие вторичной, или внешней? 3. Какие причины способны вызвать отказы в работе устройств хранения информации? 4. Что является основной единицей восстановления в системах управления базами данных? 5. Какие задачи решает диспетчер восстановления СУБД? б. Какие операции называются накатом и откатом? 7. Какие операции называются частичным и глобальным откатом? 8.
Что представляет собой буфер базы данных и каковы процессы управления буферами базы данных? 9. Как называется файл для фиксации хода выполнения транзакций и какие сведения он должен содержать? 1О. Для чего служит контрольная точка? часть и ПОСТРЕЛЯЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ УДАЛЕННЫМИ БАЗАМИ ДАННЫХ глана и ОРИЕНТАЦИЯ РАЗВИТИЯ СУБД НА РАСШИРЕННУЮ РЕЛЯЦИОННУЮ МОДЕЛЬ 14.1. Основные направления совершенствования реляционных баз данных Рассмотрим основные направления в области исследований и разработок систем управления так называемых постреляционных баз данных. Можно отметить три направления развития СУБД следующего поколения.
Первое направление — максимальное использование существующих технологий управления и дальнейшее совершенствование систем управления внешней памятью реляционных СУБД. Второе направление — создание генераторов систем управления в виде наборов модулей со стандартизованными интерфейсами. Третье направлеиие развития СУБД по сути является синтезом первых двух направлений. СУБД проектируется как некоторый интерпретатор системы правил и набор модулей — действий, вызываемых в соответствии с этими правилами. Для таких систем разрабатываются специальные языки формирования правил.