'

Review of undo componets of Oracle RDBMS

Понравилась презентация – покажи это...





Слайд 0

Review of undo componets of Oracle RDBMS Andrey Kriushin, RDTEX J.S.C.


Слайд 1

Review of undo componets of Oracle RDBMS Еще одна точка зрения на работу СУБД Oracle Откуда смотрим – undo как оперативная часть журнала транзакций Redo thread (stream) Redo record Head of redo thread Redo record: RBA – redo block address Redo entry # OP code Operands SCN of change DBA – data block address [Old data] New data


Слайд 2

Темы презентации Как происходят и где регистрируются изменения БД Согласование данных – Multiversion Read Consistency Стуртуры БД, связанные с undo Остальное Управление undo (manual/auto) Особенности для RAC Undo и восстановление БД Новые возможности Oracle 11gR2


Слайд 3

Как происходят изменения в БД Многопользовательская БД с минимальным уровнем блокирования объектов Уровни блокирования: - enqueue/lock - до COMMIT/ROLLBACK - latch/mutex - на время использование служебной структуры в SGA (shared pool) - block pin - на время чтения или изменения блока в кеше буферов Наименьшее законченное изменение – redo record (RBA: Redo Block Address + redo record#), содержит инструкцию (OP code) и операнды, в т.ч. новые и старые данные, SCN (???) Одна и та же подпрограмма kcrXXX применяет redo record как при нормальной работе БД, так и при восстановлении БД Некоторые записи redo значимы для согласованного представления данных (COMMIT)


Слайд 4

Как происходят изменения в БД Redo stream (или набор threads of redo для RAC) это журнал транзакций. Большинство DBMS обходятся одним журналом как для восстановления, так и для обеспечения целостности чтения. Ибо онЕ суть блокировочнеГи Oracle RDBMS – версионник.


Слайд 5

Как происходят изменения в БД Undo – оперативная часть журнала транзакций, необходимая для: Создания согласованного на определенный SCN образа данных Подтверждения фиксации/отката транзакции (DML, SELECT FOR UPDATE) Выполнения очистки блока ([delayed] block cleanout)


Слайд 6

Physio-Logical Model Tx layer Complex actions Sequence of block actions Undo record Data layer Logical operation DO Logical operation UNDO Change vectors Block action Change vectors Cache layer Data block Undo block RBU hdr block Chg1 Chg2 Chg3 Redo record Before (old SCN) After (new SCN) Undo block RBU hdr block Logical operation undo block Logical operation undo hdr block Data block Logical operation DO


Слайд 7

SEQ Old SCN SEQ New SCN Before image After image Change vector DBA SCN Seq# Opcode


Слайд 8

Согласование данных – Multiversion Read Consistency Фазы выполнения команды SQL Describe,Define,Parse,Bind Execute – запоминаем текущий SCN [Fetch] Стандартный уровень изоляции – Read Committed – для команды доступны (видны) только данные, зафиксированные с SCN <= Execute SCN, а также измененные в текущей транзакции Для READ ONLY: Execute SCN равен SCN команды SET TRANSACTION READ ONLY


Слайд 9

Стуктуры БД, связанные с undo Undo cостоит из/содержит [ссылки на]: Таблицы SYS.UNDO$ Сегментов отмены (undo) Таблицы транзакций в заголовке сегмента undo, V$TRANSACTION для текущих транзакций KT-layer (Kernel Transaction) в блоках данных (таблицы, индексы, кластеры) Таблица транзакций в блоке данных Transaction control slot и ITL (Interested Transaction List) slots)


Слайд 10

Остальное Управление undo (manual/auto) Особенности для RAC Undo и восстановление БД Новые возможности Oracle 11gR2


Слайд 11

Q & A Вопросы? FAQ: Q1: Я выполнил COMMIT. Как узнать, c каким SCN завершилась транзакция? A1: Q2: ORA-01555, Snapshot too old? Я проверил, в моей БД нет объектов типа SNAPSHOT... A2:


×

HTML:





Ссылка: