Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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