Видеокурс по администрированию БД Oracle. Часть 1. Архитектура

Видеокурс по базам данных Oracle. Обзор АрхитектурыВ данном обучающем видео мы рассмотрим составляющие блоки и их взаимодействие  в СУБД Oracle, т.е. дадим обзор архитектуры базы данных. Узнаем, что такое экземпляр БД и в чем его  отличие от смой базы данных. Рассмотрим переменные окружения Оракл и узнаем, для чего они нужны.   Дадим обзор структурам памяти и файлов. Объясним логическую и физическую структуру БД. Покажем существующие процессы СУБД и виды подключений к базе.      

 



Переменные окружения Oracle

ORACLE_BASE

Показывает базовую директорию оракл, если оракл ставится по правилам OFA(Optimal Flexible Architecture).

ORACLE_HOME

Показывает директорию установки ПО Оракл.

ORACLE_SID

Oracle System Identifier (или просто SID). Имя базы.

 

Экземпляр и база данных Oracle

Экземпляр

Экземпляр это те структуры памяти и процессы, которые работают с файлами данных. Память между процессами общая. По-простому - это просто программа оракл, которая запускается при старте базы. Программка непростая и внутри себя создает новые процессы(потоки в Win), а также структуры памяти для кеширования и пр. ради ускорения операций.

 

Экземпляров, работающих с одной и той же базой может быть несколько. Но 1 экземпляр единовременно может открыть только 1 базу. Иными словами у 1 базы может быть 1 и более экземпляров, а наоборот – никогда. Такая ситуация бывает, если у нас настроен Real Application Claster (RAC).

 

Но чаще все-таки классическое сочетание:

 1 экземпляр : 1 база

База данных

База данных это сами файлы на дисках: файлы с данными, журналы, контрольные файлы.

 

База данных. Файлы базы данных

Файлы данных

содержат сами данные и включаются в табличные пространства.

                                ALTER DATABASE ... CREATE DATAFILE

                              ALTER TABLESPACE ... ADD DATAFILE

Журналы повтора

содержат информацию для восстановления прерванных транзакций.

Контрольные файлы

Управляющие файлы содержат значения контрольных точек и информацию о базе. Необходим для работы БД, например  для поддержи  целостности базы данных.

 

База данных. Другие файлы

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

 

Файл паролей

Пароли пользователей Oracle.

Данный файл паролей хранит инфу по тем пользователям, которые созданы c привелегией sysdba или sysoper

 

Есть еще способ аутентификации – а именно как пользователя ОС, но в таком случае доступ проверяется операционкой, а не базой.

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

архивы журналов повтора

alert<SID>.log

системный лог. В него пишутся ошибки экземпляра.

Файлы трассировок

данные трассировок сессий

 

База данных. Логическая структура

База данных

состоит из табличных пространств

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

состоят из сегментов. Логически группируют файлы данных.

Бывают:

  • ТС для хранения данных пользователей
  • ТС для хранения временных данных (temporary)
  • ТС для хранения информации отмены(undo)

Сегмент состоит

из экстентов и служит для хранения объекта данных ( таблица, индекс, партиция и т.д.)

Экстент

состоит из последовательных блоков Oracle. По факту просто гранула, на которую вырастает сегмент при нехватке места.

Блок

это наименьшая единица данных. Равен 1 или нескольким реальным блокам операционной системы. Размер определяется через DB_BLOCK_SIZE.

 

Экземпляр. Структуры памяти

System Global Area (SGA)

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

SGA. Shared Pool

Разделяемый пул состоит из:

  • библиотечного кеша(library cache) – содержит информацию о последних выполненных операторах SQL и PL/SQL ( план разбора, откомпиленные процедуры и функции и пр)
  • кеша словаря (data dictionary cache)  - сдержит информацию о определениях объектов базы данных (нужно для синтаксического разбора для получения метаданных о запрашиваемых объектах)

SGA. Buffer Cache

  • буферный кеш содержит блоки данных, запрошенные пользователями.
  • дает большой выигрыш в производительности т.к. позволяет избежать обращений к диску.
  • работает по принципу LRU (самые горячие блоки живут дольше)
  • каждый блок запрошенный или измененный пользователем сперва помещается в буферный кеш (кроме CTAS).
  • может быть динамически увеличен или уменьшен
  • состоит из трех независимых подкешей, определяемых параметрами:

        DB_CACHE_SIZE – основной размер кеша

        DB_KEEP_CACHE_SIZE – для данных, которые принудительно запихнули в кеш, часто-используемые блоки.

        DB_RECYCLE_CACHE_SIZE – для редко-используемых блоков, которые после использования сразу могут быть удалены из кеша

SGA. Redo log buffer cache

  • журнальный кеш перезаписывается по кругу
  • содержит изменения которые происходят во время транзакции и сбрасываются потом в файлы журнала повтора.

SGA. Large Pool

  • большой пул необязательная область
  • содержит области памяти которые без него сдержались бы в SGA и тем самым снимает нагрузку. Например используется для хранения области UGA в режиме разделяемого сервера.
  • используется RMAN-ом

SGA. Java Pool

  • используется для загрузки и работы с java классами (те что могут храниться как код в оракл – java source)

Program Global Area (PGA)

Это область памяти серверного процесса.

Создается в режиме выделенного сервера.

Содержит области памяти для хранения информации о сеансе, а также области для сортировок

 

Экземпляр. Фоновые процессы

Обязательные

 

PMON

очищает ресурсы после сбоев процессов. Откатывает транзакции пользователя, снимает блокировки, перезапускает сбойнувшие диспетчеры.

SMON

восстанавливает базу после сбоев. Накатывает успешные транзакции, либо откатывает незавершенные транзакции. Выполняет также объекдинене пирлегающих свободных экстентов и освобождает пространство временных сегментов

DBWn

n – означает №. Т.е. их может быть несоклько.

Сбрасывает измененные блоки из кеша буферов в базу данных при заполнении кеша либо срабатывании контрольной точки и др. событиях. Обновляет контрольную точку в контрольных файлах

LGWn

пишет буфера из кеша буферов в журналы при фиксации транзакции, а также через каждые 3 секунды, а также если журнальный буфер заполнен более чем на 1/3 либо >1 Мб. Всегда срабатывает перед DBWn и даже может его вызывать.  Успешная запись подтверждает успешную транзакцию

CKPT

обновляет информацию о контрольной точке в заголовках файлов данных и в управляющих файлах. Делает это каждые 3 секунды. Задача контрольной точки в том чтобы гарантировать, что все изменные в кеше буфера до срабатывания контрольной точки были записаны на диск

Необязательные

 

ARCn

процесс архивирования журнальный файлов.

RECO

процесс завершения транзакций в распределенной базе данных

Dnnn

диспетчер в многопотоковом сервере

Pnnn

подчиненные процессы параллельного сервера

 

Виды подключений

DEDICATED

Подключение, при котором каждому клиенту(пользовательскому процессу) создается свой собственный выделенный сервер (серверный процесс, который содержит структуру PGA и обслуживает запросы пользователя).

 

Такой режим рекомендуется для систем с долгими блокировками. А также оптимален, если приложение использует собственный пул соединений.

SHARED

Подключение, при котором каждый клиент сперва коннектится к диспетчеру. Диспетчер подключает клиента к свободному серверному процессу. Если свободных нет, то клиент ждет. В отличие от предыдущего варианта здесь PGA выделяется под сам процесс, но сами данные пользователя хранятся уже не в PGA ,а в области UGA(User Global Area), которая помещается в SGA.

Диспетчер может переключать клиентов на освободившийся серверный процесс настолько свободно, что вполне вероятна ситуация когда часть кода вы выполните с одним серверным процессом, а другую часть с другим (если конечно между этими частями есть возврат управления клиенту).

 

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

DRCP (Database Resident Connection Pooling)

Новый режим соединения (11g), который объединяет в себе преимущества выделенного и разделяемого сервера. Суть сводится к тому что заранее создает пул серверных процессов и каждому подключению выделяется свободный процесс в режиме выделенного сервера.

 

Системные представления

select * from dictionary -- все тут

 

DBA_TABLESPACES

информация о ТС

DBA_DATA_FILES

инф. о файлах данных

DBA_SEGMENTS

инф. о сегментах

V$VERSION

инф. о версии ПО

V$INSTANCE

инф. о экземпляре

V$DATABASE

инф. о БД

V$PROCESS

инф. о процессах

V$SESSION

инф. о сессиях

 

Вас заинтересует / Intresting for you:

Создание базы данных Oracle
Создание базы данных Oracle 15397 просмотров Александров Попков Wed, 14 Nov 2018, 12:44:39
Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 6971 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Поддерживаемые Oracle типы дан...
Поддерживаемые Oracle типы дан... 4642 просмотров Валерий Павлюков Wed, 24 Oct 2018, 08:00:37
СУБД Oracle: обзор характерист...
СУБД Oracle: обзор характерист... 5360 просмотров Antoni Fri, 24 Nov 2017, 07:35:05

Войдите чтобы комментировать