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

Содержание

Слайд 2

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

При запуске экземпляра

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

это механизм в операционной системе, который может выполнить последовательность шагов
Слайд 3

Хранение и использование данных выполняемый код программы данные, которые совместно используются

Хранение и использование данных

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

для каждого подключенного пользователя
Слайд 4

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

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

Слайд 5

Области оперативной памяти Системная Глобальная область - SGA Глобальные программные области - PGA

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

Системная Глобальная область - SGA
Глобальные программные области - PGA

Слайд 6

SGA группа областей разделяемой памяти содержат данные и управляющую информацию для

SGA

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

Oracle
совместно используется всеми серверными и фоновыми
Слайд 7

PGA создаваемая Oracle неразделяемая память при запуске серверного или фонового процесса

PGA

создаваемая Oracle неразделяемая память при запуске серверного или фонового процесса
области памяти,

которые содержат данные и управляющую информацию для серверного или фонового процесса, такие как пространство стека или информация сеанса
доступ к PGA является монопольным для серверного процесса
у каждого серверного процесса и фонового процесса есть собственная PGA
запись в PGA выполняется только кодом Oracle, действующим по запросу PGA
Слайд 8

PGA содержит стековое пространство содержит пользовательскую глобальную область (UGA)

PGA

содержит стековое пространство
содержит пользовательскую глобальную область (UGA)

Слайд 9

UGA Область курсоров Область хранения данных сеанса Рабочие области SQL: Область

UGA

Область курсоров
Область хранения данных сеанса
Рабочие области SQL:
Область сортировки для функций, таких

как ORDER BY и GROUP BY
Область хеша для выполнения соединения таблиц
Область создания битового массива
Область слияния битовых массивов, используемую для того, чтобы разрешать план выполнения индекса битового массива
Слайд 10

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

UGA – User Global Area

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

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

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

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

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

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

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

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

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

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

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

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

Слайд 14

Структура SGA

Структура SGA

Слайд 15

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

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

Java pool
Large pool
Shared pool
Streams pool
“Null”

pool
Слайд 16

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

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

Слайд 17

Представления словаря 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

Слайд 18

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

Гранулы – granule

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

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

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

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

Слайд 20

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

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

Слайд 21

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

Параметры SGA

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

Слайд 22

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

Параметры SGA

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

Слайд 23

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

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

Слайд 24

Структура SGA

Структура SGA

Слайд 25

Буферный пул Буферный пул (буферный кэш) – область SGA, которая содержит

Буферный пул

Буферный пул (буферный кэш) – область SGA, которая содержит образы

блоков, считанные из файлов данных или созданные динамически, чтобы реализовать модель согласованного чтения
Совместно используется всеми пользователями
Слайд 26

Буферный пул Пользовательский процесс БД требует определенный фрагмент данных Поиск данных

Буферный пул

Пользовательский процесс БД требует определенный фрагмент данных
Поиск данных в буферном

пуле
Если данные обнаружены, то их можно считать прямо из памяти
Если данные не обнаружены, то придется скопировать блок данных из файла данных на диске в буфер, чтобы получить доступ к данным
Слайд 27

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

Буферный пул

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

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

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

Буферный пул

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

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

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

Буферный пул

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

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

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

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

Слайд 31

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

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

Слайд 32

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

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

DEFAULT
KEEP
RECYCLE

Слайд 33

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

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

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

Слайд 34

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

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

DEFAULT
KEEP
RECYCLE

Слайд 35

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

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

Слайд 36

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

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

Слайд 37

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

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

Слайд 38

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

CACHE

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

в default pool
Слайд 39

Структура SGA

Структура SGA

Слайд 40

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

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

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

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

Параметр LOG_BUFFER

Параметр LOG_BUFFER

Слайд 42

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

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

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

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

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

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

Слайд 44

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

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

Слайд 45

Структура SGA

Структура SGA

Слайд 46

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

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

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


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

Структура SGA

Структура SGA

Слайд 48

Разделяемый пул Библиотечный кэш Разделяемую область SQL Кэш словаря данных Управляющие структуры

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

Библиотечный кэш
Разделяемую область SQL
Кэш словаря данных
Управляющие структуры

Слайд 49

Поддержка словаря данных Кэш словаря данных – содержит данные в виде

Поддержка словаря данных

Кэш словаря данных – содержит данные в виде строк
Библиотечный

кэш
Все пользовательские процессы Oracle совместно используют эти два кэша для доступа к информации о словаре данных
Слайд 50

Поддержка словаря данных Каждый SQL-оператор распознается Для нового SQL-оператора выделяется память

Поддержка словаря данных

Каждый SQL-оператор распознается
Для нового SQL-оператора выделяется память в разделяемом

пуле
Когда два пользователя выполняют одно и то же предложение SQL, оператор используется повторно из разделяемой области SQL
Аналогично обрабатывается программные блоки
Слайд 51

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

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

Слайд 52

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

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

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

Слайд 53

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

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

Слайд 54

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

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

Слайд 55

Структура SGA

Структура SGA

Слайд 56

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

Большой пул

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

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

Большой пул

Большой пул

Слайд 58

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

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

Слайд 59

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

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

Слайд 60

Структура SGA

Структура SGA

Слайд 61

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

Java-пул

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

Слайд 62

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

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