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