Протокол транзакций

Оценить
(0 голоса)

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

Database Engine сохраняет все записанные записи, их значения до и после изменения, в одном или более файлах, называемых протоколом транзакций. Каждая база данных имеет собственный протокол транзакций. Следовательно, если нужно отменять одну или более операций изменения данных в таблицах текущей базы данных, Database Engine использует записи в протоколе транзакций для восстановления значений столбцов, которые были в базе данных до начала старта транзакции.

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

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

Каждая запись, помещенная в протокол, уникально идентифицируется с использованием последовательного номера протокола (log sequence number, LSN). Все записи протокола, являющиеся частью отдельной транзакции, связаны вместе, так что все части транзакции могут быть локализованы для отмены или для повторного выполнения действий.


Блокировка данных в базе данных
Режимы блокировки
Гранулярность блокировок
Укрупнение блокировок
Влияние блокировок

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.