Слайд 2
Архитектура Oracle – основные термины
База данных - набор
физических файлов операционной системы
Экземпляр - набор процессов Oracle и
область SGA.
Слайд 4
Основные компоненты архитектуры Oracle
Файлы, образующие базу данных и
поддерживающих экземпляр - файлы параметров, сообщений, данных, временных данных
и журналов повторного выполнения.
Структуры памяти - системная глобальная область (System Global Area — SGA) и входящие в SGA пулы.
Физические процессы или потоки - серверные процессы, фоновые процессы и подчиненные процессы.
Слайд 5
Архитектура внешней памяти
Экземпляр
Файлы параметров
База данных
Файлы данных
Файлы журнала
повторного выполнения
Управляющие файлы
Временные файлы
Файлы паролей
Слайд 7
Схема архитектуры внешней памяти
Слайд 8
Месторасположение файлов базы данных
Слайд 9
Месторасположение файлов базы данных
Слайд 10
Табличное пространство
Табличное пространство – логическая структура хранения данных,
контейнер сегментов.
Табличное пространство – пограничный объект базы данных:
с одной стороны логическая структура сервера, с другой файл или файлы операционной системы. С одним табличным пространством связаны один или несколько файлов, с каждым файлом связано только одно табличное пространство.
Данные, временные данные, данные отката – организованы в виде табличных пространств.
Слайд 12
Предопределенные табличные пространства
SYSTEM используется для управления БД, содержит
словарь базы данных, стандартные пакеты процедур.
SYSAUX – вспомогательное табличное
пространство.
TEMP – временное табличное пространство по умолчанию.
UNDOTBS1 – табличное пространство отката.
USERS – хранение пользовательских объектов и данных.
EXAMPLE – демонстрационные схемы.
Слайд 13
Табличные пространства
SELECT * FROM DBA_TABLESPACES;
Слайд 14
Виды табличных пространств
PERMANENT – предназначены для хранения постоянных
объектов (таблиц, индексов, кластеров, ...)
TEMPORARY – для временных данных
UNDO – для отката
Слайд 15
Создание табличного пространства
Слайд 16
Параметры табличного пространства
SMALLFILE – 1022 файлов, по 222
блоков
BIGFILE – 1 файл, 128TB(блок 32К) или 32TB(блок 8К)
LOGGING
/ NOLOGGING / FORCE LOGGING
ONLINE / OFFLINE
REUSE
Слайд 17
Создание таблиц
Можно указать табличное пространство.
На это табличное
пространство у пользователя создающего таблицу должна быть достаточная квота.
Если tablespace не указан в create table, то таблица будет создана в табличном пространстве по умолчанию
Удаление таблиц
Слайд 18
Табличное пространство для временных данных
Создается CREATE TEMPORARY TABLESPACE
Используются
для хранения промежуточных результатов сортировки
Может быть одно общее для
всех PDB (создается при инсталляции в CDB)
Может быть создано несколько
Слайд 19
Временное табличное пространство
Слайд 20
Табличное пространство для отката UNDO
Создается CREATE UNDO TABLESPACE
Может
быть несколько, но используется только одно
Указывается в файле параметров
экземпляра
Слайд 21
Табличные пространства в представлениях словаря
Слайд 22
Схема архитектуры внешней памяти
Слайд 23
Сегмент
Сегмент – область на диске, выделяемая под объекты.
Сегменты
типизируются в зависимости от типа данных, хранящихся в них
– сегменты таблиц, сегменты индексов, сегменты кластеров и т.д.(всего 10 типов).
Слайд 24
Экстент
Экстент – непрерывный фрагмент дисковой памяти.
Является единицей выделения
вторичной памяти (выделяется целым числом экстентов).
Когда экстент заполняется
выделяется следующий.
Размер экстента варьируется от одного блока до 2 Гб.
Слайд 25
Блоки
Блок – минимальная единица объема памяти, применяемая при
записи и чтении данных.
Размер кратен 2К, и должен
быть кратен величине блока операционной системы (2К, 4К, 8К, допустимы 16К, 32К).
Устанавливается в файле параметров экземпляра при создании БД,
В табличном пространстве все блоки одного размера.
Схема блока
Слайд 26
Сегмент – экстент – блок
Сегмент состоит из одного
и более экстентов
Экстент состоит из идущих подряд блоков
Слайд 27
Сегмент
Располагается в табличном пространстве.
В одном табличном пространстве
может быть много сегментов.
Сегмент, если он не секционирован,
располагается в одном табличном пространстве.
Управление размерностью сегментов может осуществляться автоматически (segment space management auto) или вручную (segment space management manual).
Слайд 29
Сегмент
сразу после создания табличного пространства в нем нет
сегментов
Слайд 30
Сегмент
Сразу после создания таблицы сегмент не создается
Deferred segment
create – отложенное создание сегментов
Слайд 31
Сегмент
Сегмент хранит только данные, поэтому он создается только
при добавлении данных (в примере строки в таблицу).
Слайд 32
Сегмент
При удалении строк (delete) из таблицы, сегмент не
удаляется.
Слайд 33
Сегмент
При удалении таблицы (drop table) изменяется имя сегмента,
и информация об удалении записывается в словарь базы данных.
Слайд 34
Сегмент
Таблица и ее содержимое (сегмент) могут быть восстановлены
с помощью механизма RECYCLEBIN.
Слайд 35
Сегмент
Для удаления RECYCLEBIN-сегмента применяется команда PURGE.
Слайд 36
Сегмент
Если при удалении объекта применяется опция PURGE, то
RECYCLEBIN-сегмент не сохраняется и восстановление объекта невозможно.
Слайд 37
Экстент
Длину выделяемого экстента вычисляет СУБД (не меньше 64К).
Если при создании табличного пространства задана опция UNIFORM, то
все экстенты имеют одинаковую длину.
Управление экстентами возможно локальное LOCAL и через словарь базы данных DICTIONARY.
Слайд 40
Экстент - пример удаления таблицы
Слайд 42
Блок
Устанавливается в файле параметров экземпляра.
Слайд 45
Итого
База данных состоит из одного или нескольких табличных
пространств.
Табличное пространство состоит из одного или нескольких файлов данных.
Табличное пространство содержит сегменты.
Сегменты состоят из экстентов. Сегмент привязан к табличному пространству, но его данные могут находиться в разных файлах данных, образующих это табличное пространство.
Экстент — набор расположенных рядом на диске блоков. Экстент целиком находится в одном табличном пространстве и, более того, в одном файле данных этого табличного пространства.
Блок — наименьшая единица управления пространством в базе данных. Блок — наименьшая единица ввода-вывода, используемая сервером.