Открыть сервис

Транзакционный журнал

Транзакционный журнал (также журнал транзакций, журнал операций, лог транзакций) — это упорядоченная запись всех изменений, вносимых в базу данных (или иную систему хранения данных), которая обеспечивает возможность восстановления целостности данных после сбоев, отката незавершённых операций и поддержания согласованности в многопользовательской среде. Является обязательным компонентом систем управления базами данных (СУБД), поддерживающих транзакционную модель (например, ACID).

Назначение и роль

Основное назначение транзакционного журнала — гарантировать, что ни одна успешно завершённая транзакция не будет потеряна, а любая прерванная транзакция не оставит систему в противоречивом состоянии. Журнал действует как «запасной вариант»: если сбой происходит до того, как изменённые данные были записаны на диск (в основное хранилище), СУБД использует журнал для повторного выполнения (redo) или отмены (undo) операций.

Ключевые функции:

Структура и принцип работы

Транзакционный журнал обычно представляет собой последовательный (append-only) файл или группу файлов на диске. Каждая запись в журнале (лог-запись) содержит информацию, достаточную для восстановления одного атомарного изменения.

Стандартная структура записи включает:

Принцип работы основан на правиле Write-Ahead Logging (WAL): запись в журнал должна производиться до того, как изменённые данные будут записаны в основное хранилище базы данных. Это гарантирует, что в случае сбойной ситуации в журнале будет достаточно информации для восстановления, даже если основное хранилище повреждено или не обновлено.

Виды транзакционных журналов

По способу хранения и обработки различают:

Управление размером и циклическая запись

Транзакционные журналы имеют тенденцию к неограниченному росту, если не управлять их размером. Для предотвращения переполнения диска применяются механизмы ротации и архивации:

Примеры реализации в популярных СУБД

Влияние на производительность

Транзакционный журнал является узким местом в системах с высокой интенсивностью записи. Каждая операция модификации данных требует записи в журнал, что создаёт дополнительную дисковую нагрузку. Для повышения производительности применяются:

Критика и альтернативы

Традиционный транзакционный журнал имеет недостатки:

Альтернативные подходы:

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →