Журнал транзакций

Слайд 2

Журнал транзакций Журнал транзакций – файл, в котором регистрируются изменения, вносимые

Журнал транзакций


Журнал транзакций – файл, в котором регистрируются изменения, вносимые транзакциями

в базу данных. Запись об изменениях производится до фактического выполнения этих изменений (принцип WAL, Write Ahead Log). С помощью журнала транзакций поддерживается Надежность(Durability) БД.
Основная задача:
возможность восстановления согласованности данных после сбоя
Механизм:
при изменении данных действие также записывается в журнал журнальная запись попадает на диск раньше измененных данных восстановление после сбоя — повторное выполнение потерянных операций с помощью журнальных записей
Слайд 3

Что защищено журналом Изменение любых страниц в буферном кэше в том

Что защищено журналом

Изменение любых страниц в буферном кэше
в том числе

страницы таблиц и индексов
кроме нежурналируемых и временных таблиц
кроме hash-индексов
Фиксация и отмена транзакций (CLOG)
Файловые операции
создание и удаление файлов
создание и удаление каталогов
Слайд 4

Логическое устройство журнала

Логическое устройство журнала

Слайд 5

Физическое устройство

Физическое устройство

Слайд 6

Журнал транзакций поддерживает следующие операции: восстановление отдельных транзакций; восстановление всех незавершенных

Журнал транзакций поддерживает следующие операции:

восстановление отдельных транзакций;
восстановление всех незавершенных транзакций при

запуске
накат восстановленной базы данных, файла, файловой группы или страницы до момента сбоя;
поддержка репликации транзакций;
Слайд 7

Восстановление Алгоритм (упрощенный) при старте сервера после сбоя (состояние кластера в

Восстановление

Алгоритм (упрощенный) при старте сервера после сбоя
(состояние кластера в pg_control

отличается от «shut down»):
для каждой журнальной записи:
определить страницу, к которой относится эта запись
применить запись, если ее LSN больше, чем LSN страниц
2. перезаписать нежурналируемые таблицы init-файлами