Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
88
Добавлен:
10.02.2015
Размер:
41.18 Кб
Скачать

Метод восстановления с использованием отложенного обновления

При использовании этого метода обновления не заносятся в базу данных до тех пор, пока транзакция не выдаст команду фиксации выполненных изменений. Если выполнение транзакции будет прекращено до достижения этой точки, никаких изменений в базе данных выполнено не будет, поэтому не потребуется и их отмена. Однако в данном случае может потребоваться выполнить накат обновлений зафиксированных транзакций, поскольку их результаты могли еще не достичь базы данных. При применении данного метода файл журнала используется с целью защиты от аварий системы следующим образом.

  • При запуске транзакции в журнал помещается запись начала транзакции. При выполнении любой операции записи помещаемая в файл журнала строка содержит все указанные выше данные (за исключением значений элементов данных, предшествующих обновлению). Реально запись изменений в буфера СУБД или в базу данных не происходит.

  • Когда транзакция достигает точки фиксации, в журнал помещается запись фиксации транзакции. Все записи журнала, соответствующие данной транзакции, выводятся на диск, после чего фиксируются изменения, внесенные транзакцией. Для внесения действительных изменений в базу данных используется информация, помещенная в файл журнала.

  • В случае аварийного завершения транзакции записи журнала по данной транзакции аннулируются и не выводятся на диск. Обратите внимание на то, что записи журнала по выполняемой транзакции выводятся на диск до того, как ее результаты будут зафиксированы. Поэтому если отказ базы данных произойдет в процессе действительного внесения обновлений в базу данных, помещенные в журнал сведения сохранятся и требуемые обновления можно будет выполнить позже. В случае отказа файл журнала анализируется с целью выявления транзакций, которые находились в процессе выполнения в момент отказа. Начиная с последней строки файл журнала просматривается в обратном направлении, вплоть до записи о последней выполненной контрольной точке.

  • Для любых транзакций, для которых в файле журнала присутствуют записи начала транзакции и фиксации транзакции, должен быть выполнен накат. Процедура наката транзакций выполняет все операции записи в базу данных, используя информацию о состоянии элементов данных после обновления, содержащуюся в записях журнала по данной транзакции, причем в том порядке, в каком они были записаны в файл журнала. Если эти операции записи уже были успешно завершены до возникновения отказа, это не окажет никакого влияния на состояние элементов данных, поскольку они не могут быть испорчены, если будут записаны еще раз (это означает, что применяемая операция записи является идемпотентной). Однако такой метод гарантирует, что будут обновлены любые элементы данных, которые не были корректно обновлены до момента отказа.

  • Любая транзакция, для которой в файле журнала присутствуют записи начала транзакции,и отмены транзакции, просто игнорируется, поскольку никаких реальных обновлений информации в базе данных по ней не выполнялось, а значит, не требуется и реального выполнения их отката. Если в процессе восстановления возникнет другой системный сбой, записи файла журнала могут быть использованы для восстановления базы данных еще раз, В этом случае не имеет значения, сколько раз каждая из строк журнала была использована для повторного внесения изменений в базу данных.

Соседние файлы в папке Базы данных(1 курс, 2 семестр,2011-2012)