Разработка корпоративных систем на базе oracle: Как стать...
DESCRIPTION
Валерий Ковальчук – известный эксперт по СУБД Oracle – об особенностях архитектуры Oracle 11g для начинающих специалистов по администрированию баз данных.TRANSCRIPT
Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database
Валерий Ковальчук 9 июня 2013
ведущий:
D Copyright © 2004, Oracle. All rights reserved.
Компоненты архитектуры Oracle
Copyright © 2004, Oracle. All rights reserved.
Рассматриваемые вопросы
• Обзор архитектуры сервера базы данных Oracle и его основных компонентов
• Перечень структур, используемых при установлении соединения пользователя с экземпляром Oracle
• Обзор этапов обработки: – запросов; – операторов DML; – фиксации транзакции.
Copyright © 2004, Oracle. All rights reserved.
Обзор архитектуры базы данных Oracle
Сервер базы данных Oracle состоит из двух основных компонентов: • База данных (физические структуры) • Экземпляр (структуры памяти)
Copyright © 2004, Oracle. All rights reserved.
Физическая архитектура базы данных
Файлы данных Оперативные журналы
Файл паролей Файл параметров
Управляющие файлы
Архивные журналы
Copyright © 2004, Oracle. All rights reserved.
Управляющие файлы
• Содержат информацию о физической структуре базы данных
• Требуют мультиплексирования для защиты от их потери
• Требуются для монтирования БД при старте экземпляра
Управляющие файлы
Copyright © 2004, Oracle. All rights reserved.
Оперативные журналы
• В них записываются изменения, сделанные в БД • Журнальные файлы необходимо
мультиплексировать, чтобы защититься от их потери Журнальный
буфер
Процесс LGWR
Группа 1 Группа 2 Группа 3
Copyright © 2004, Oracle. All rights reserved.
Табличные пространства и файлы данных
• Табличные пространства состоят из одного или более файлов данных
• Файлы данных принадлежат только одному табличному пространству.
Табличное пространство USERS
Файл данных 1 Файл данных 2
Copyright © 2004, Oracle. All rights reserved.
Сегменты, экстенты и блоки
• Сегмент существует в рамках табличного пространства.
• Сегмент состоит из набора экстентов. • Экстенты – это набор смежных блоков данных. • Блоки данных отображаются в блоки ОС.
Сегмент Экстенты Блоки данных
Блоки ОС
Copyright © 2004, Oracle. All rights reserved.
Экземпляр Oracle
Системный монитор SMON
Процесс записи в БД
DBW0
Процесс записи в журнал LGWR
Монитор процессов
PMON
Архиватор ARC0
SGA
Java-пул
Разделяемый пул Большой пул Пул потоков
Кэш буферов БД
Журнальный буфер
Процесс контрольной
точки CKPT
Copyright © 2004, Oracle. All rights reserved.
Структуры памяти Oracle
Java-пул Кэш буферов БД
Журнальный буфер
Разделяемый пул Большой пул
SGA
Пул потоков
Серверный процесс
1 PGA
Серверный процесс
2 PGA Фоновый
процесс PGA
Copyright © 2004, Oracle. All rights reserved.
Процессы Oracle
Системный монитор SMON
Процесс записи в БД
DBWn
Процесс контрольной
точки CKPT
Процесс записи в журнал LGWR
Монитор процессов
PMON
Архиватор ARCn
Серверный процесс
Серверный процесс
Серверный процесс
Серверный процесс
Системная глобальная область
SGA
Фоновые процессы
Copyright © 2004, Oracle. All rights reserved.
Другие основные физические структуры
Архивные журналы
Файл параметров
Файл паролей
База данных
Copyright © 2004, Oracle. All rights reserved.
Обработка команды SQL
• Соединение с экземпляром использует : – пользовательский процесс; – серверный процесс
• Использование компонентов сервера Oracle зависит от типа команды SQL: – запрос, возвращающий строки; – оператор DML, изменяющий данные; – фиксация, обеспечивающая восстановление транзакции.
• Некоторые компоненты сервера Oracle не участвуют в обработке команд SQL.
Copyright © 2004, Oracle. All rights reserved.
Соединение с экземпляром
Серверный процесс
Серверный процесс
Пользовательский процесс
Клиент
Серверный процесс
Сервер Oracle
Сервер Сервер приложений
Браузер
Пользовательский процесс
Пользовательский процесс
Copyright © 2004, Oracle. All rights reserved.
Обработка запроса
• Разбор: – поиск одинаковой команды – проверка синтаксиса, имен объектов и привилегий
– блокирование объектов, используемых во время разбора
– создание и сохранение плана выполнения • Выполнение: идентификация выбираемых
строк • Выборка: возврат строк пользовательскому
процессу
Copyright © 2004, Oracle. All rights reserved.
Разделяемый пул
• Библиотечный кэш содержит текст команды, разобранный код и план выполнения.
• Кэш словаря данных содержит определения и привилегии для таблиц, столбцов и других объектов.
• Размер определяется в SHARED_POOL_SIZE.
Кэш
словаря данных
Библиотечный кэш
Разделяемый пул
Copyright © 2004, Oracle. All rights reserved.
Кэш буферов базы данных
• Хранит недавно используемые блоки • Размер буфера основывается на
DB_BLOCK_SIZE • Размер кэша буферов задается параметром
DB_CACHE_SIZE
Кэш буферов БД
Copyright © 2004, Oracle. All rights reserved.
Программная глобальная область (PGA)
• Неразделяемая • Доступна для записи только серверному
процессу • Содержит:
– область сортировки – информацию сеанса – состояние курсора – пространство стека
Серверный процесс
PGA
Copyright © 2004, Oracle. All rights reserved.
Обработка команды DML
UPDATE
employees ...
SGA
Журнальный буфер
Кэш буферов БД
Разделяемый пул
Пользовательский процесс
База данных
Файлы данных
Управляющие файлы
Журнальные файлы
1
1 2 3 4 Серверный процесс
Copyright © 2004, Oracle. All rights reserved.
Журнальный буфер
• Размер устанавливается в LOG_BUFFER • Содержит измененные в ходе работы этого
экземпляра данные • Используется последовательно • Является круговым буфером
Журнальный буфер
Copyright © 2004, Oracle. All rights reserved.
Сегмент отмены
Команда DML
Старый образ
Новый образ Сегмент отмены
Таблица
Copyright © 2004, Oracle. All rights reserved.
Обработка фиксации транзакции
1
3
4
Экземпляр LGWR
2
SGA
Журнальный буфер
Кэш буферов БД
Разделяемый пул
Серверный процесс
Пользовательский процесс
База данных
Файлы данных
Управляющие файлы
Журнальные файлы
Copyright © 2004, Oracle. All rights reserved.
Итоги
• Файлы базы данных: файлы данных, управляющие файлы, оперативные журнальные файлы.
• Структуры памяти SGA: кэш буферов БД, разделяемый пул и журнальный буфер.
• Основные фоновые процессы: DBW0, LGWR, CKPT, PMON, SMON и ARC0.
• Этапы обработки команды SQL: разбор, выполнение, выборка.