Отложенное обновление и немедленное обновление
Отложенное обновление и немедленное обновление - это два метода, используемые для обслуживания файлов журнала транзакций систем управления базами данных (СУБД). Журнал транзакций (также называемый журналом журнала или журналом повторов) - это физический файл, в котором хранится идентификатор транзакции, отметка времени транзакции, старое значение и новые значения данных. Это позволяет СУБД отслеживать данные до и после каждой транзакции. Когда транзакции фиксируются и база данных возвращается в согласованное состояние, журнал может быть усечен, чтобы удалить зафиксированные транзакции.
Отложенное обновление
Отложенное обновление, также называемое NO-UNDO/REDO, представляет собой метод, используемый для восстановления/поддержки сбоев транзакций, возникающих из-за сбоев операционной системы, питания, памяти или компьютера. Когда транзакция выполняется, любые обновления или изменения, внесенные транзакцией в базу данных, не выполняются немедленно. Они записываются в файл журнала. Изменения данных, записанные в файле журнала, применяются к базе данных при фиксации. Этот процесс называется «Переделка». При откате любые изменения данных, записанных в файл журнала, отбрасываются; следовательно, никакие изменения не будут применяться к базе данных. Если транзакция завершилась неудачно и не была зафиксирована по любой из упомянутых выше причин, записи в файле журнала удаляются, а транзакция перезапускается. Если изменения в транзакции зафиксированы до сбоя, то после перезагрузки системы изменения, записанные в лог-файле, применяются к базе данных.
Немедленное обновление
Немедленное обновление, также называемое UNDO/REDO, также является еще одним методом, используемым для восстановления/поддержки сбоев транзакций, возникающих из-за сбоев операционной системы, питания, памяти или машины. Когда транзакция выполняется, любые обновления или изменения, сделанные транзакцией, записываются непосредственно в базу данных. Как исходные, так и новые значения также записываются в файл журнала перед внесением изменений в базу данных. При фиксации все изменения, внесенные в базу данных, становятся постоянными, а записи в файле журнала удаляются. При откате старые значения восстанавливаются в базе данных с использованием старых значений, хранящихся в файле журнала. Все изменения, внесенные транзакциями в базу данных, отбрасываются, и этот процесс называется «Отмена». Когда система перезагружается после сбоя, все изменения базы данных становятся постоянными для совершенных транзакций. Для незафиксированных транзакций исходные значения восстанавливаются с использованием значений в файле журнала.
В чем разница между отложенным обновлением и немедленным обновлением
Несмотря на то, что отложенное обновление и немедленное обновление представляют собой два метода восстановления после системного сбоя, процесс, используемый каждым методом, отличается. В другом методе обновления любые изменения, внесенные в данные транзакцией, сначала записываются в файл журнала и применяются к базе данных при фиксации. В методе немедленного обновления изменения, сделанные транзакцией, применяются непосредственно к базе данных, а старые значения и новые значения записываются в файл журнала. Эти записи используются для восстановления старых значений при откате. В другом методе обновления записи в файле журнала удаляются при откате и никогда не применяются к базе данных. Одним из недостатков метода отложенного обновления является увеличение времени восстановления в случае сбоя системы. С другой стороны, частые операции ввода-вывода во время активной транзакции являются недостатком метода немедленного обновления.