10окт
Содержимое журналов повторного выполнения
Формируемые данные для журналов повторного выполнения представляют собой запись, состоящую из векторов изменений. Эти вектора описывают изменения, сделанные в
- блоке сегмента данных таблицы
- блоке данных сегмента отката
- таблице транзакций сегментов отката.
Я попытаюсь ответить на такие вопросы:
Что собой представляет вектор изменения (change#)?
Вектор изменения - описание любого изменения, сделанное в любом (одном !) блоке БД.
Он состоит из заголовка, массива длин изменений и массива изменений.

Заголовок состоит из Change number, Change type, Class(соответствует полю class в x$BH), Absolute File Number, Relative Database Block, Address, System Change Number, Sequence Number (relative to SCN), Operation Code.
Заголовок вектора изменения может быть, например, таким:
CHANGE #2 TYP:0 CLS: 1 AFN:5 DBA:0x0144d023 SCN:0x0000.0ac67cce
SEQ: 4 OP:11.5
Что собой представляет redo -запись?
Redo -запись ( redo record ) состоит из заголовка и одного или нескольких векторов изменения. Каждая redo-запись содержит данные undo и redo для атомарного изменения. То есть, чаще всего запись содержит вектор изменения в блоке сегмента данных таблицы, вектор изменения в блоке данных сегмента отката и вектор изменения в таблице транзакций сегментов отката.Некоторым изменениям не требуется undo
Атомарное изменение (единое целое) – применяются все вектора записи или ни одного.
Заголовок состоит из следующей информации :
Thread Thread Number
RBA Redo Byte Address
LEN Length of record in bytes
SCN System Change Number
Date and Time of Change
Например:
REDO RECORD - Thread:1 RBA: 0x003666.000000cf.0010 LEN: 0x019c VLD: 0x01 SCN: 0x0000.00eb1279 SUBSCN: 1 05/08/2007 15:44:12
Что собой представляет RBA?
RBA может, например, быть таким: 0x003666.000000cf.0010
RBA имеет длину в 10 bytes и идентифицирует адрес начала redo-записи. Адрес включает в себя Log sequence number (0x3666),Block number within redo log (0xcf),Byte number within block (0x10)
Что собой представляет SCN?
Например, SCN:0x0000.0ac67cc3
Определяет номер закомиченной версии данных, имеет длину 6 bytes и состоит из Wrap (2 bytes) и Base (4 bytes).
Что собой представляет файл журнала повторного выполнения?
Файл включает все изменения совершенные
- DML командами: INSERT, UPDATE, DELETE, SELECT FOR UPDATE, но не содержит текста этих команд
- в словаре DDL -командами, включает текст этих команд
Запись в файл проводится последовательно.
На рисунке показано, какие данные содержаться в журнале на примере небольшой транзакции :

В статье использовались материалы
«Redo Internals» Julian Dyke Independent Consultant