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

Содержание

Слайд 2

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

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

Слайд 3

Основные структуры памяти SGA – System Global Area – глобальная область

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

SGA – System Global Area – глобальная область системы
PGA

– Process (Program) Global Area – глобальная область процесса
UGA – User Global Area – глобальная область пользователя
Слайд 4

PGA PGA - это область памяти, в которой хранятся данные и

PGA

PGA - это область памяти, в которой хранятся данные и управляющая

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

UGA – User Global Area Располагается в области SGA, если подключение

UGA – User Global Area

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

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

Режим выделенного сервера Dedicated server (режим по умолчанию) – для каждого

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

Dedicated server (режим по умолчанию) – для каждого клиента

выделяется отдельный выделенный серверный процесс (обработчик запросов, dedicated server process) который называется shadow process (теневой процесс).
Слайд 7

Режим разделяемого сервера Shared server – обрабатывает программа dispatcher: 1)получает запрос

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

Shared server – обрабатывает программа dispatcher:
1)получает запрос от

клиента,
2)помещает их во входную очередь к разделяемым серверам;
3)незанятый разделяемый сервер извлекает и обрабатывает запрос;
4)после обработки разделяемый сервер помещает результат обработки в выходную очередь;
5) из очереди результат извлекает диспетчер;
6) диспетчер пересылает результат клиенту
Слайд 8

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

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

Слайд 9

Структура SGA

Структура SGA

Слайд 10

Основные пулы области SGA Java pool Large pool Shared pool Streams pool “Null” pool

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

Java pool
Large pool
Shared pool
Streams pool
“Null”

pool
Слайд 11

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

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

Слайд 12

Представления словаря v$sga V$sgastat v$sga_dynamic_components v$sga_dynamic_free_memory

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

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

Слайд 13

Гранулы – granule Память различным пулам в SGA выделяется блоками, которые

Гранулы – granule

Память различным пулам в SGA выделяется блоками, которые называются

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

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

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

Слайд 15

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

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

Слайд 16

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

Параметры SGA

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

Слайд 17

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

Параметры SGA

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

Слайд 18

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

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

Слайд 19

Структура SGA

Структура SGA

Слайд 20

Буферный пул Буферный пул (буферный кэш) хранит блоки данных табличных пространств

Буферный пул

Буферный пул (буферный кэш) хранит блоки данных табличных пространств
Блок –

единица обмена информацией между оперативной памятью и диском
С каждым блоком связан счетчик использования
Списки блоков упорядочены по количеству обращений к блоку
Слайд 21

Буферный пул Поддерживается два списка блоков: список грязных блоков (отличаются от

Буферный пул

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

копии на диске и должны быть записаны в табличное пространство)
список чистых блоков (не измененные блоки).
Слайд 22

Буферный пул Алгоритм LRU (least recently used)– первыми вытесняются блоки с

Буферный пул

Алгоритм LRU (least recently used)– первыми вытесняются блоки с наименьшим

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

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

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

Слайд 24

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

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

Слайд 25

Пулы буферного кэша DEFAULT KEEP RECYCLE

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

DEFAULT
KEEP
RECYCLE

Слайд 26

Параметры пулов буферного кэша Устанавливаются alter system set … В файле параметров

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

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

Слайд 27

Пулы буферного кэша DEFAULT KEEP RECYCLE

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

DEFAULT
KEEP
RECYCLE

Слайд 28

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

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

Слайд 29

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

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

Слайд 30

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

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

Слайд 31

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

CACHE

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

в default pool
Слайд 32

Структура SGA

Структура SGA

Слайд 33

Буфер журналов повторного выполнения Буфер журнала повторного выполнения предназначен для временного

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

Буфер журнала повторного выполнения предназначен для временного хранения

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

Параметр LOG_BUFFER

Параметр LOG_BUFFER

Слайд 35

Ожидание освобождения буфера журналов повтора Redo buffer allocation retries – статистика

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

Redo buffer allocation retries – статистика –

количество случаев ожидания процессами освобождения буфера журнала повтора:
буфер занят,
процесс LGWR не сбросил данные на диск,
процесс ждет освобождения буфера для записи информации об изменении базы данных.
Значение должно быть равно 0, иначе надо увеличивать размер буфера.
Слайд 36

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

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

Слайд 37

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

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

Слайд 38

Структура SGA

Структура SGA

Слайд 39

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

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

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


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

Структура SGA

Структура SGA

Слайд 41

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

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

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

словаря.
Слайд 42

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

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

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

Слайд 43

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

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

Слайд 44

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

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

Слайд 45

Структура SGA

Структура SGA

Слайд 46

Большой пул Большой пул - область памяти SGA, применяемая для хранения

Большой пул

Большой пул - область памяти SGA, применяемая для хранения больших

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

Большой пул

Большой пул

Слайд 48

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

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

Слайд 49

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

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

Слайд 50

Структура SGA

Структура SGA

Слайд 51

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

Java-пул

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

Слайд 52

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

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