Архитектура ORACLE
Схема экземпляра
Основные структуры памяти
PGA
UGA – User Global Area
Режим выделенного сервера
Режим разделяемого сервера
Режимы соединений
Структура SGA
Основные пулы области SGA
Представления словаря
Гранулы – granule
Представления словаря
Представления словаря
Параметры SGA
Параметры SGA
Параметры SGA – изменение
Структура SGA
Буферный пул
Буферный пул
Буферный пул
Буферный пул – вытеснение блоков
Буферный пул – вытеснение блоков
Пулы буферного кэша
Параметры пулов буферного кэша
Пулы буферного кэша
Пулы буферного кэша
Пулы буферного кэша
Помещение таблицы в определенный пул
CACHE
Структура SGA
Буфер журналов повторного выполнения
Параметр LOG_BUFFER
Ожидание освобождения буфера журналов повтора
Изменения размеров буфера журналов повтора
Файл параметров
Структура SGA
Фиксированная область SGA
Структура SGA
Разделяемый пул
Управление размером разделяемого пула
Управление размером разделяемого пула
Объекты в разделяемом пуле
Структура SGA
Большой пул
Большой пул
Большой пул – параметры
Большой пул – параметры
Структура SGA
Java-пул
Параметры Java-пула
Вопросы?

Архитектура ORACLE. Области оперативной памяти (Лекция 5)

1. Архитектура ORACLE

Области оперативной памяти
Лекция 5

2. Схема экземпляра

3. Основные структуры памяти

SGA – System Global Area – глобальная область
системы
PGA – Process (Program) Global Area – глобальная
область процесса
UGA – User Global Area – глобальная область
пользователя

4. PGA

PGA - это область памяти, в которой хранятся данные
и управляющая информация о серверных процессах
Oracle:
Пространство стека - это память, хранящая
переменные сеансов, массивы сеансов и т.д.
Информация сеанса
Приватная SQL-область – связанные переменные и
буферы реального времени.

5. UGA – User Global Area

Располагается в области SGA, если подключение
выполнено посредством разделяемого сервера
Располагается в области PGA, если подключение
выполнено через выделенный сервер

6. Режим выделенного сервера

Shadow
server 1
Shadow
server 1
ORACLE INSTANCE
CLIENT 1
Shadow
server 1
CLIENT 2
Dedicated server (режим по умолчанию) – для каждого
клиента выделяется отдельный выделенный серверный
процесс (обработчик запросов, dedicated server process)
который называется shadow process (теневой процесс).
CLIENT 3

7. Режим разделяемого сервера

Входная очередь
запросов
6
2
1
6
1
Диспетчер
1
5
6
Выходная очередь
запросов
3
Shared server
процесс
Shared server
процесс
Shared server
процесс
4
ORACLE INSTANCE
CLIENT 1
CLIENT 2
Shared server – обрабатывает программа dispatcher:
1)получает запрос от клиента,
2)помещает их во входную очередь к разделяемым серверам;
3)незанятый разделяемый сервер извлекает и обрабатывает запрос;
4)после обработки разделяемый сервер помещает результат
обработки в выходную очередь;
5) из очереди результат извлекает диспетчер;
6) диспетчер пересылает результат клиенту
CLIENT 3

8. Режимы соединений

9. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

10. Основные пулы области SGA

Java pool
Large pool
Shared pool
Streams pool
“Null” pool

11.

Структура оперативной памяти Oracle 12c

12. Представления словаря

v$sga
V$sgastat
v$sga_dynamic_components
v$sga_dynamic_free_memory

13. Гранулы – granule

Память различным пулам в SGA выделяется блоками,
которые называются гранулами.
Одна гранула (granule) - это область памяти размером
4, 8 или 16 Мбайт.
Гранула является наименьшей единицей выделения
памяти

14. Представления словаря

15. Представления словаря

16. Параметры SGA

SGA_MAX_SIZE – указывает максимальный размер
памяти

17. Параметры SGA

SGA_TARGET – указывает текущий (возможный)
размер памяти

18. Параметры SGA – изменение

19. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

20. Буферный пул

Буферный пул (буферный кэш) хранит блоки данных
табличных пространств
Блок – единица обмена информацией между
оперативной памятью и диском
С каждым блоком связан счетчик использования
Списки блоков упорядочены по количеству
обращений к блоку

21. Буферный пул

Поддерживается два списка блоков:
список грязных блоков (отличаются от своей копии на
диске и должны быть записаны в табличное пространство)
список чистых блоков (не измененные блоки).

22. Буферный пул

Алгоритм LRU (least recently used)– первыми
вытесняются блоки с наименьшим значением
счетчика.
Запись грязных блоков на диск осуществляется в 4х
случаях:
1) истечение тайм-аута (3 сек);
2) контрольная точка;
3) превышение длины грязных блоков заданного лимита;
4) процесс не может обнаружить свободный блок.

23. Буферный пул – вытеснение блоков

24. Буферный пул – вытеснение блоков

25. Пулы буферного кэша

DEFAULT
KEEP
RECYCLE

26. Параметры пулов буферного кэша

Устанавливаются
alter system set …
В файле параметров

27. Пулы буферного кэша

DEFAULT
KEEP
RECYCLE

28. Пулы буферного кэша

29. Пулы буферного кэша

30. Помещение таблицы в определенный пул

31. CACHE

CACHE – помещение таблицы в конец LRU-списка (для малых
таблиц) обычно в default pool

32. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

33. Буфер журналов повторного выполнения

Буфер журнала повторного выполнения предназначен
для временного хранения данных журнала повтора;
Позволяет ускорить работу сервера за счет
буферизации;
Содержимое сбрасывается на диск (в журнал
повтора) в 4-х случаях:
1) каждые три секунды;
2) при фиксации транзакции;
3) при заполнении буфера на 1/3;
4) если в буфере более 1m данных журнала повтора.

34. Параметр LOG_BUFFER

35. Ожидание освобождения буфера журналов повтора

Redo buffer allocation retries – статистика – количество
случаев ожидания процессами освобождения буфера
журнала повтора:
буфер занят,
процесс LGWR не сбросил данные на диск,
процесс ждет освобождения буфера для записи
информации об изменении базы данных.
Значение должно быть равно 0, иначе надо
увеличивать размер буфера.

36. Изменения размеров буфера журналов повтора

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

38. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

39. Фиксированная область SGA

хранит переменные, указывающие на другие области
памяти, значения параметров;
представляет собой загрузочный бинарный код;
размер области зависит от платформы, версии
операционной системы;
размером фиксированной области SGA управлять
нельзя.

40. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Буферный пул
Большой пул
Пул Java
Буфер журналов
повтора

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

Разделяемый пул предназначен для кэширования
данных – планов запросов, кэш словаря.

42. Управление размером разделяемого пула

Устанавливаются alter
system set …
В файле параметров

43. Управление размером разделяемого пула

44. Объекты в разделяемом пуле

45. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

46. Большой пул

Большой пул - область памяти SGA, применяемая для
хранения больших фрагментов памяти.
В этой области не применяется вытеснение по
алгоритму LRU,
память становится свободной сразу после того, как
перестает использоваться,
аналог RECYCLE, а разделяемый пул в этом смысле KEEP,
хранятся данные при резервном копировании
(RMAN), специальные области UGA и пр.

47. Большой пул

48. Большой пул – параметры

49. Большой пул – параметры

50. Структура SGA

Фиксированная
область SGA
Разделяемый
пул
Большой пул
Пул Java
Буферный пул
Буфер журналов
повтора

51. Java-пул

Java-пул предназначен для работы Java-машины;

52. Параметры Java-пула

53. Вопросы?

English     Русский Правила