Журнал транзакций
В области баз данных в информатике журнал транзакций (также журнал транзакций , журнал базы данных , двоичный журнал или контрольный журнал ) представляет собой историю действий, выполняемых системой управления базами данных , используемую для обеспечения ACID свойств при сбоях или сбоях оборудования. Физически журнал представляет собой файл со списком изменений в базе данных, хранящийся в стабильном формате хранения.
Если после запуска база данных обнаруживается в несогласованном состоянии или не была завершена должным образом, система управления базой данных просматривает журналы базы данных на наличие незафиксированных транзакций и откатывает изменения, внесенные этими транзакциями . Кроме того, повторно применяются все транзакции, которые уже зафиксированы, но изменения которых еще не были материализованы в базе данных. И то, и другое сделано для обеспечения атомарности и долговечности транзакций.
Этот термин не следует путать с другими удобочитаемыми журналами , которые обычно предоставляет система управления базами данных.
В системах управления базами данных журнал — это запись данных, измененных данным процессом. [1] [2] [3] [4]
Анатомия общего журнала базы данных
[ редактировать ]Запись журнала базы данных состоит из:
- Порядковый номер журнала (LSN): уникальный идентификатор записи журнала. С помощью номеров LSN журналы можно восстанавливать за постоянное время. Большинство номеров LSN назначаются в монотонно возрастающем порядке, что полезно в алгоритмах восстановления , таких как ARIES .
- Prev LSN : ссылка на последнюю запись журнала. Это означает, что журналы базы данных создаются в форме связанного списка .
- Идентификатор транзакции : ссылка на транзакцию базы данных, создающую запись журнала.
- Тип : описывает тип записи журнала базы данных.
- Информация о фактических изменениях, которые привели к записи записи в журнал.
Типы записей журнала базы данных
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Июль 2016 г. ) |
Все записи журнала включают в себя общие атрибуты журнала, указанные выше, а также другие атрибуты в зависимости от их типа (который записывается в атрибуте «Тип» , как указано выше).
- Запись журнала обновлений отмечает обновление (изменение) базы данных. Он включает в себя дополнительную информацию:
- PageID : ссылка на идентификатор измененной страницы.
- Длина и смещение : обычно включается длина в байтах и смещение страницы.
- Изображения «до» и «после» : включает значение байтов страницы до и после изменения страницы. Некоторые базы данных могут иметь журналы, содержащие одно или оба изображения.
- Запись журнала компенсаций (CLR) отмечает откат определенного изменения в базе данных. Каждая соответствует ровно одной другой записи журнала обновлений (хотя соответствующая запись журнала обновлений обычно не хранится в записи журнала компенсаций). Он включает в себя дополнительную информацию:
- undoNextLSN : это поле содержит LSN следующей записи журнала, которую необходимо отменить для транзакции, записавшей последний журнал обновлений.
- Commit Record отмечает решение о совершении транзакции.
- Abort Record отмечает решение прервать и, следовательно, откатить транзакцию.
- Запись контрольной точки отмечает, что была создана контрольная точка. Они используются для ускорения восстановления. Они записывают информацию, которая устраняет необходимость глубокого чтения журнала. Это зависит от алгоритма контрольной точки. Если при создании контрольной точки все грязные страницы сбрасываются (как в PostgreSQL ), она может содержать:
- redoLSN : это ссылка на первую запись журнала, соответствующую грязной странице. т.е. первое обновление, которое не было удалено во время контрольной точки. Именно здесь необходимо начать восстановление после восстановления.
- undoLSN : это ссылка на самую старую запись журнала самой старой незавершенной транзакции. Это самая старая запись журнала, необходимая для отмены всех выполняющихся транзакций.
- В отчете о завершении отмечается, что для данной конкретной транзакции вся работа была выполнена. (Оно было полностью зафиксировано или прервано)
См. также
[ редактировать ]- Регистрация данных
- Исправление и обнаружение ошибок
- Хэш-функция
- Журналируемая файловая система
- Файловая система с журнальной структурой
- Журналирование с упреждающей записью
- Журнал повтора
Источники
[ редактировать ]Ссылки
[ редактировать ]- ^ Microsoft, Журнал транзакций (SQL Server)
- ^ sqlshack.com, Руководство для начинающих по журналам транзакций SQL Server, 11 февраля 2014 г., Иван Станкович
- ^ techrepublic.com, Понимание важности журналов транзакций в SQL Server, Обслуживание журнала транзакций SQL Server, Кроу, Чижек, 11 ноября 2004 г.
- ^ Neurobs.com, Файлы журналов