Из Википедии, бесплатной энциклопедии
  (Перенаправлено из журнала (вычисления) )
Перейти к навигации Перейти к поиску

В области баз данных в информатике , журнал транзакций (также журнал транзакций , журнал базы данных , бинарный журнал или аудита ) является история действий , выполняемых с помощью системы управления базами данных , используемых для обеспечения ACID свойств более аварий или сбоев оборудования. Физически журнал представляет собой файл со списком изменений в базе данных, хранящийся в стабильном формате хранения.

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

Этот термин не следует путать с другими, удобочитаемыми журналами, которые обычно предоставляет система управления базами данных.

В системах управления базами данных журнал - это запись данных, измененных данным процессом. [1] [2] [3] [4]

Анатомия общего журнала базы данных [ править ]

Запись журнала базы данных состоит из:

  • Порядковый номер журнала (LSN): уникальный идентификатор записи журнала. С помощью LSN журналы можно восстанавливать за постоянное время. Большинство номеров LSN назначаются в монотонно возрастающем порядке, что полезно в алгоритмах восстановления , таких как ARIES .
  • Prev LSN : ссылка на их последнюю запись в журнале. Это означает, что журналы базы данных построены в виде связанного списка .
  • Идентификационный номер транзакции : ссылка на транзакцию базы данных, генерирующую запись журнала.
  • Тип : описывает тип записи журнала базы данных.
  • Информация о фактических изменениях, которые привели к записи записи журнала.

Типы записей журнала базы данных [ править ]

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

  • Запись журнала обновлений отмечает обновление (изменение) базы данных. Он включает в себя эту дополнительную информацию:
    • PageID : ссылка на идентификатор измененной страницы.
    • Длина и смещение : обычно включаются длина в байтах и ​​смещение страницы.
    • До и после изображений : включает значение байтов страницы до и после изменения страницы. В некоторых базах данных могут быть журналы, содержащие одно или оба изображения.
  • Запись журнала компенсации (CLR) отмечает откат определенного изменения в базе данных. Каждой из них соответствует ровно одна другая запись журнала обновлений (хотя соответствующая запись журнала обновлений обычно не сохраняется в записи журнала компенсации). Он включает в себя эту дополнительную информацию:
    • undoNextLSN : это поле содержит LSN следующей записи журнала, которая должна быть отменена для транзакции, которая записала последний журнал обновлений.
  • Запись фиксации отмечает решение о фиксации транзакции.
  • Abort Record отмечает решение об отмене и, следовательно, откате транзакции.
  • Checkpoint Record отмечает, что контрольная точка была создана. Они используются для ускорения восстановления. Они записывают информацию, которая избавляет от необходимости долго читать журнал. Это зависит от алгоритма контрольной точки. Если все грязные страницы очищаются при создании контрольной точки (как в PostgreSQL ), она может содержать:
    • redoLSN : это ссылка на первую запись журнала, которая соответствует «грязной» странице. т.е. первое обновление, которое не было сброшено во время контрольной точки. Здесь должен начинаться повтор при восстановлении.
    • undoLSN : это ссылка на самую старую запись журнала самой старой выполняющейся транзакции. Это самая старая запись журнала, необходимая для отмены всех незавершенных транзакций.
  • В протоколе завершения отмечается, что вся работа была сделана для этой конкретной транзакции. (Он был полностью зафиксирован или прерван)

См. Также [ править ]

Источники [ править ]

  • Федеральный стандарт 1037C

Ссылки [ править ]

  1. ^ Microsoft, Журнал транзакций (SQL Server)
  2. ^ sqlshack.com, Руководство для начинающих по журналам транзакций SQL Server, 11 февраля 2014 г., Иван Станкович
  3. ^ techrepublic.com, Понимание важности журналов транзакций в SQL Server, Обслуживание журнала транзакций SQL Server, Кроу, Чизек, 11 ноября 2004 г.
  4. ^ neurobs.com, файлы журналов