Similar presentations:
Журнал транзакций
1.
Журнал транзакцийИсупов Евгений
2.
Журнал транзакцийЖурнал транзакций – файл, в котором регистрируются изменения, вносимые
транзакциями в базу данных. Запись об изменениях производится до фактического
выполнения этих изменений (принцип WAL, Write Ahead Log). С помощью журнала
транзакций поддерживается Надежность(Durability) БД.
Основная задача:
возможность восстановления согласованности данных после сбоя
Механизм:
при изменении данных действие также записывается в журнал журнальная запись
попадает на диск раньше измененных данных восстановление после сбоя —
повторное выполнение потерянных операций с помощью журнальных записей
3.
Что защищено журналомИзменение любых страниц в буферном кэше
в том числе страницы таблиц и индексов
кроме нежурналируемых и временных таблиц
кроме hash-индексов
Фиксация и отмена транзакций (CLOG)
Файловые операции
создание и удаление файлов
создание и удаление каталогов
4.
Логическое устройство журнала5.
Физическое устройство6.
Журнал транзакций поддерживает следующие операции:● восстановление отдельных транзакций;
● восстановление всех незавершенных транзакций при запуске
● накат восстановленной базы данных, файла, файловой группы
или страницы до момента сбоя;
● поддержка репликации транзакций;
7.
ВосстановлениеАлгоритм (упрощенный) при старте сервера после сбоя
(состояние кластера в pg_control отличается от «shut down»):
1. для каждой журнальной записи:
1. определить страницу, к которой относится эта запись
2. применить запись, если ее LSN больше, чем LSN страниц
2. перезаписать нежурналируемые таблицы init-файлами
8.
ИтогиИспользование буферов в оперативной памяти приводит к
необходимости журналирования
Журнал содержит информацию,позволяющую повторно выполнить
операции после сбоя и восстановить согласованность
Журнал всегда записывается на диск до того, как записываются
измененные страницы данных