Разработка корпоративных систем на базе oracle: Как стать...

24
Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database Валерий Ковальчук 9 июня 2013 [email protected] ведущий:

Upload: skillfactory

Post on 29-Nov-2014

879 views

Category:

Technology


4 download

DESCRIPTION

Валерий Ковальчук – известный эксперт по СУБД Oracle – об особенностях архитектуры Oracle 11g для начинающих специалистов по администрированию баз данных.

TRANSCRIPT

Page 1: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Валерий Ковальчук 9 июня 2013

[email protected]

ведущий:

Page 2: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

D Copyright © 2004, Oracle. All rights reserved.

Компоненты архитектуры Oracle

Page 3: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Рассматриваемые вопросы

•  Обзор архитектуры сервера базы данных Oracle и его основных компонентов

•  Перечень структур, используемых при установлении соединения пользователя с экземпляром Oracle

•  Обзор этапов обработки: –  запросов; –  операторов DML; –  фиксации транзакции.

Page 4: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Обзор архитектуры базы данных Oracle

Сервер базы данных Oracle состоит из двух основных компонентов: •  База данных (физические структуры) •  Экземпляр (структуры памяти)

Page 5: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Физическая архитектура базы данных

Файлы данных Оперативные журналы

Файл паролей Файл параметров

Управляющие файлы

Архивные журналы

Page 6: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Управляющие файлы

•  Содержат информацию о физической структуре базы данных

•  Требуют мультиплексирования для защиты от их потери

•  Требуются для монтирования БД при старте экземпляра

Управляющие файлы

Page 7: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Оперативные журналы

•  В них записываются изменения, сделанные в БД •  Журнальные файлы необходимо

мультиплексировать, чтобы защититься от их потери Журнальный

буфер

Процесс LGWR

Группа 1 Группа 2 Группа 3

Page 8: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Табличные пространства и файлы данных

•  Табличные пространства состоят из одного или более файлов данных

•  Файлы данных принадлежат только одному табличному пространству.

Табличное пространство USERS

Файл данных 1 Файл данных 2

Page 9: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Сегменты, экстенты и блоки

•  Сегмент существует в рамках табличного пространства.

•  Сегмент состоит из набора экстентов. •  Экстенты – это набор смежных блоков данных. •  Блоки данных отображаются в блоки ОС.

Сегмент Экстенты Блоки данных

Блоки ОС

Page 10: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Экземпляр Oracle

Системный монитор SMON

Процесс записи в БД

DBW0

Процесс записи в журнал LGWR

Монитор процессов

PMON

Архиватор ARC0

SGA

Java-пул

Разделяемый пул Большой пул Пул потоков

Кэш буферов БД

Журнальный буфер

Процесс контрольной

точки CKPT

Page 11: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Структуры памяти Oracle

Java-пул Кэш буферов БД

Журнальный буфер

Разделяемый пул Большой пул

SGA

Пул потоков

Серверный процесс

1 PGA

Серверный процесс

2 PGA Фоновый

процесс PGA

Page 12: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Процессы Oracle

Системный монитор SMON

Процесс записи в БД

DBWn

Процесс контрольной

точки CKPT

Процесс записи в журнал LGWR

Монитор процессов

PMON

Архиватор ARCn

Серверный процесс

Серверный процесс

Серверный процесс

Серверный процесс

Системная глобальная область

SGA

Фоновые процессы

Page 13: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Другие основные физические структуры

Архивные журналы

Файл параметров

Файл паролей

База данных

Page 14: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Обработка команды SQL

•  Соединение с экземпляром использует : –  пользовательский процесс; –  серверный процесс

•  Использование компонентов сервера Oracle зависит от типа команды SQL: –  запрос, возвращающий строки; –  оператор DML, изменяющий данные; –  фиксация, обеспечивающая восстановление транзакции.

•  Некоторые компоненты сервера Oracle не участвуют в обработке команд SQL.

Page 15: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Соединение с экземпляром

Серверный процесс

Серверный процесс

Пользовательский процесс

Клиент

Серверный процесс

Сервер Oracle

Сервер Сервер приложений

Браузер

Пользовательский процесс

Пользовательский процесс

Page 16: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Обработка запроса

•  Разбор: –  поиск одинаковой команды –  проверка синтаксиса, имен объектов и привилегий

–  блокирование объектов, используемых во время разбора

–  создание и сохранение плана выполнения •  Выполнение: идентификация выбираемых

строк •  Выборка: возврат строк пользовательскому

процессу

Page 17: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Разделяемый пул

•  Библиотечный кэш содержит текст команды, разобранный код и план выполнения.

•  Кэш словаря данных содержит определения и привилегии для таблиц, столбцов и других объектов.

•  Размер определяется в SHARED_POOL_SIZE.

Кэш

словаря данных

Библиотечный кэш

Разделяемый пул

Page 18: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Кэш буферов базы данных

•  Хранит недавно используемые блоки •  Размер буфера основывается на

DB_BLOCK_SIZE •  Размер кэша буферов задается параметром

DB_CACHE_SIZE

Кэш буферов БД

Page 19: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Программная глобальная область (PGA)

•  Неразделяемая •  Доступна для записи только серверному

процессу •  Содержит:

–  область сортировки –  информацию сеанса –  состояние курсора –  пространство стека

Серверный процесс

PGA

Page 20: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Обработка команды DML

UPDATE

employees ...

SGA

Журнальный буфер

Кэш буферов БД

Разделяемый пул

Пользовательский процесс

База данных

Файлы данных

Управляющие файлы

Журнальные файлы

1

1 2 3 4 Серверный процесс

Page 21: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Журнальный буфер

•  Размер устанавливается в LOG_BUFFER •  Содержит измененные в ходе работы этого

экземпляра данные •  Используется последовательно •  Является круговым буфером

Журнальный буфер

Page 22: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Сегмент отмены

Команда DML

Старый образ

Новый образ Сегмент отмены

Таблица

Page 23: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Обработка фиксации транзакции

1

3

4

Экземпляр LGWR

2

SGA

Журнальный буфер

Кэш буферов БД

Разделяемый пул

Серверный процесс

Пользовательский процесс

База данных

Файлы данных

Управляющие файлы

Журнальные файлы

Page 24: Разработка корпоративных систем на базе Oracle: Как стать профессионалом в Oracle Database

Copyright © 2004, Oracle. All rights reserved.

Итоги

•  Файлы базы данных: файлы данных, управляющие файлы, оперативные журнальные файлы.

•  Структуры памяти SGA: кэш буферов БД, разделяемый пул и журнальный буфер.

•  Основные фоновые процессы: DBW0, LGWR, CKPT, PMON, SMON и ARC0.

•  Этапы обработки команды SQL: разбор, выполнение, выборка.