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

Презентация:



Advertisements
Похожие презентации
Лекция 25 Лекция 25 Понятие целостности базы данных. Условия целостности. Транзакции. Обработка транзакций. Свойства транзакций. Модель ANSI/ISO. Назначение.
Advertisements

Модели транзакций Журнализация и буферизация. Зачем нужна буферизация Если бы запись об изменении базы данных, которая должна поступить в журнал при выполнении.
Транзакции Транзакция - это последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного)
Лекция 26 Лекция 26 Параллельное выполнение транзакций. Типы конфликтов. Захваты и блокировки.
1.Доступ к словарю базы данных 1.v$ 2.dba_ 3.all_ 4.user_ 2.Просмотр системных view cистемные view - dict (dictionary) столбцы системных view – dict_columns.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Модели транзакций Свойства транзакций. Способы завершения транзакций.
Администрирование информационных систем 8 семестр Администрирование СУБД Oracle Аврунев Олег Евгеньевич, зам. директора ЦИУ Лекция 1.
ACID – свойства транзакций 1.Атомарность 2.Согласованность 3.Изолированность 4.Долговечность create table AccountInfo(Name varchar2(100), Account number(10));
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Файл Сервер ORACLE База данных Экземпляр Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных Процесс Базы данных SGA База данных.
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ. Программная единица PL/SQL Именованные блоки Три основных категории Процедура Функция Пакет Хранятся в базе данных или обрабатываются.
SQL Server 2012 Deep Dive Денис Резник Database Architect at The Frayman Group.
Уровень баз данных Введение в РСУБД. Содержание Что такое база данных? СУБД и РСУБД Транзакции ACID свойства транзакций Уровни изоляции в транзакциях.
Обзор возможностей 11g Новые области для исследования Горбоконенко Евгений.
Обобщенная архитектура СУБД. Область SQL содержит данные связывания, временные буферы, дерево разбора и план выполнения для каждого оператора SQL, Область.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
PostgreSQL и MySQL глазами Oracle DBA Юрий Адамёнок
Организация многопользовательского доступа к данным "Кто хочет работать – ищет средства, кто не хочет – причины". С.П. Королёв, советский ученый и конструктор.
Транксрипт:

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

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

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

Как происходят изменения в БД Многопользовательская БД с минимальным уровнем блокирования объектов Уровни блокирования: - 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)

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

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

Physio-Logical Model Tx layer Complex actionsSequence 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 Chg1Chg2Chg3 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

SEQ Old SCN SEQNew SCN Before imageAfter imageChange vector DBA SCN Seq# Opcode

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

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

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

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