КАТЕГОРИИ: Архитектура-(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) |
Управление буферами базы данныхОрганизация управления буферами базы данных играет важную роль в процессе восстановления информации. Рассмотрим применяемые для этого методы. Процессы управления буферами базы данных, которые применяются для считывания и записи страницы данных во вторичную память, осуществляются специальной программой, называемой диспетчером буферов. Такая программа должна предусматривать считывание страниц с диска в буферы до полного их заполнения, а затем применение той или иной стратегии замещения для определения того, какой буфер (буферы) необходимо принудительно записать на диск, чтобы освободить место для новых страниц, которые должны быть считаны с диска. Один из алгоритмов управления предусматривает применение двух буферов переменных — pinCount и dirty. Этим переменным, соответствующим каждому буферу базы данных, первоначально присваивается нулевое значение. При получении запроса на считывание страницы с диска диспетчер буферов выполняет проверку для определения, не находится ли эта страница в одном из буферов. Если страница не находится ни в одном из буферов, то диспетчер буферов выполняет следующие действия: • выбирает буфер, предназначенный для замещения (называемый замещаемым буфером), и увеличивает значение переменной на единицу; • если переменная dirty равна нулю, производит запись буфера на диск; • считывает страницу с диска в буфер замещения и присваивает переменной dirty нулевое значение. При поступлении повторного запроса к одной и той же странице соответствующее значение pinCount увеличивается на единицу. После того как система сообщит диспетчеру буферов, что применение этой страницы закончено, соответствующее значение pinCount уменьшается на единицу. Кроме того, система может сообщить диспетчеру буферов, что в содержимое страницы внесено изменение, поэтому переменной dirty присваивается ненулевое значение, т.е. страница отмечается как «грязная» — требующая записи на диск. После того как значение pinCount станет нулевым, страница становится незакрепленной и может быть записана на диск. Приведем правила восстановления базы данных при записи страниц на диск: • правило конфискации позволяет диспетчеру буферов записывать содержимое буфера на диск прежде, чем транзакция выполнит фиксацию (буфер при этом не закреплен). Иными словами, диспетчер буферов может «отнять» страницу, принадлежащую транзакции. Правило, противоположное данному, запрещает конфискацию страниц; • правило принудительной записи гарантирует, что все страницы, модифицированные в ходе транзакции, будут немедленно записаны на диск после фиксации транзакции. Правило, противоположное данному, не требует принудительной записи страниц. На практике проще всего реализовать подход к восстановлению БД, предусматривающий использование правила, запрещающего конфискацию страниц, и правила принудительной записи. При использовании правила, запрещающего конфискацию страниц, не требуется выполнения отката транзакции, завершившейся аварийно, поскольку в этом случае внесенные изменения еще не были записаны на диск. При этом применение правила принудительной записи гарантирует, что при возникновении аварии в системе не придется выполнять накат изменений, внесенных зафиксированной транзакцией, так как все изменения после фиксации транзакции немедленно записываются на диск. Здесь правило, запрещающее конфискацию страниц, используется в протоколе отложенного восстановления результатов обновления. С другой стороны, правило, допускающее конфискацию страниц, имеет определенное преимущество перед правилом, не допускающим такую конфискацию. Данное преимущество заключается в том, что позволяет избежать необходимости распределения объема буферного пространства, который может потребоваться для хранения всех копий страниц обновляемых многочисленными параллельными транзакциями. Типовая структура СУБД должна предоставлять следующие функции восстановления: • механизм резервного копирования, предназначенный для периодического создания резервных копий базы данных; • средства ведения журнала, в котором фиксируются текущее состояние транзакций и вносимые в базу данных изменения; • фиксацию создания контрольных точек, обеспечивающую перенос выполняемых в базе данных изменений во вторичную память с целью сделать их постоянными; • диспетчера восстановления, обеспечивающего восстановление согласованного состояния базы данных, нарушенного в результате отказа.
Дата добавления: 2014-01-07; Просмотров: 1743; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |