зуется для восстановления, должна храниться особо надежно. Наиболее
распространенным
методом поддержания такой избыточной информа-
ции является ведение журнала изменений БД.
Журнал –
это особая часть БД, куда поступают записи обо всех изме-
нениях основной части БД. Журнал не доступен пользователям СУБД и
поддерживается с особой тщательностью (иногда поддерживаются две
копии журнала, расположенные на отдельных физических дисках). Из-
менения БД заносятся в журнал на разных уровнях: иногда запись в жур-
нале соответствует некоторой логической операции изменения БД (на-
пример, операции удаления строки из таблицы реляционной БД), иногда
–
минимальной внутренней операции модификации страницы внешней
памяти; в некоторых системах одновременно используются оба подхода.
Во всех случаях придерживаются стратегии «упреждающей» записи в
журнал (так называемого протокола Write Ahead Log – WAL). Эта стра-
тегия заключается в том, что запись об изменении любого объекта БД
должна попасть во внешнюю память журнала раньше, чем измененный
объект попадет во внешнюю память основной части БД. Известно, что
если в СУБД корректно соблюдается протокол WAL, то с помощью жур-
нала можно решить все
проблемы восстановления БД после любого сбоя.
Для восстановления БД после жесткого сбоя используют не только
журнал, но и архивную копию БД.
Архивная копия – это полная копия
БД к моменту начала заполнения журнала (имеется много вариантов бо-
лее гибкой трактовки смысла архивной копии). Восстановление БД со-
стоит в том, что исходя из архивной копии, по журналу воспроизводится
работа всех транзакций, которые закончились к моменту сбоя.
Достарыңызбен бөлісу: