Funnybluejeans : другие произведения.

19

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:

  19.     Основные компоненты архитектуры Oracle: файлы, структуры памяти, физические процессы. Понятие экземпляра Oracle.
  Oracle проектировалась как максимально переносимая СУБД, - она доступна на всех распространенных платформах. Поэтому физическая архитектура Oracle различна в разных операционных системах. Например, в ОС UNIX СУБД Oracle реализована в виде нескольких отдельных процессов операционной системы - практически каждая существенная функция реализована отдельным процессом. Для UNIX такая реализация подходит, поскольку основой многозадачности в ней является процесс. Для Windows, однако, подобная реализация не подходит и работала бы не слишком хорошо (система получилась бы медленной и плохо масштабируемой). На этой платформе СУБД Oracle реализована как один многопоточный процесс, т.е. с использованием подходящих для этой платформы механизмов реализации. На мэйнфреймах IBM, работающих под управлением OS/390 и zOS, СУБД Oracle использует несколько адресных пространств OS/390, совместно образующих экземпляр Oracle. Для одного экземпляра базы данных можно сконфигурировать до 255 адресных пространств. Более того, СУБД Oracle взаимодействует с диспетчером загрузки OS/390 WorkLoad Manager (WLM) для установки приоритетности выполнения определенных компонентов Oracle по отношению друг к другу и к другим задачам, работающим в системе OS/390. В ОС Netware тоже используется многопоточная модель. Хотя физические средства реализации СУБД Oracle на разных платформах могут отличаться, архитектура системы - достаточно общая, чтобы можно было понять, как СУБД Oracle работает на всех платформах.
  Рассмотрим три основных компонента архитектуры Oracle.
  1. Файлы. Будут рассмотрены пять видов файлов, образующих базу данных и поддерживающих экземпляр. Это файлы параметров, сообщений, данных, временных данных и журналов повторного выполнения.
  2. Структуры памяти, в частности системная глобальная область (System Global Area - SGA). Мы рассмотрим взаимодействие SGA, PGA и UGA. Будут также рассмотрены входящие в SGA Java-пул, разделяемый пул и большой пул.
  3. Физические процессы или потоки. Будут описаны три типа процессов, образующих экземпляр: серверные процессы, фоновые процессы и подчиненные процессы.
  Файлы
  В состав базы данных и экземпляра входит шесть типов файлов. С экземпляром связаны файлы параметров. По этим файлам экземпляр при запуске определяет свои характеристики, например размер структур в памяти и местонахождение управляющих файлов.
  Базу данных образуют следующие файлы:
  1. Файлы данных. Собственно данные (в этих файлах хранятся таблицы, индексы и все остальные сегменты).
  2. Файлы журнала повторного выполнения. Журналы транзакций.
  3. Управляющие файлы. Определяют местонахождение файлов данных и содержат другую необходимую информацию о состоянии базы данных.
  4. Временные файлы. Используются при сортировке больших объемов данных и для хранения временных объектов.
  5. Файлы паролей. Используются для аутентификации пользователей, выполняющих администрирование удаленно, по сети. Мы не будем их подробно рассматривать.
  Наиболее важны первые два типа файлов, поскольку именно в них хранятся накопленные данные. В случае потери остальных файлов хранящиеся данные не пострадают. Если будут потеряны файлы журнала повторного выполнения, некоторые данные могут быть потеряны. Если же будут потеряны файлы данных и все их резервные копии, данные, безусловно, будут потеряны навсегда.
  Структуры памяти
  Теперь пришло время рассмотреть основные структуры памяти сервера Oracle. Их три.
  1. SGA, System Global Area - глобальная область системы. Это большой совместно используемый сегмент памяти, к которому обращаются все процессы Oracle.
  2. PGA, Process Global Area - глобальная область процесса. Это приватная область памяти процесса или потока, недоступная другим процессам/потокам.
  3. UGA, User Global Area - глобальная область пользователя. Это область памяти, связанная с сеансом. Глобальная область памяти может находиться в SGA либо в PGA. Если сервер работает в режиме MTS, она располагается в области SGA, если в режиме выделенного сервера, - в области PGA.
  Рассмотрим кратко области PGA и UGA, затем перейдем к действительно большой структуре - области SGA.
  Области PGA и UGA
  Как уже было сказано, PGA - это область памяти процесса. Эта область памяти используется одним процессом или одним потоком. Она недоступна ни одному из остальных процессов/потоков в системе. Область PGA обычно выделяется с помощью библиотечного вызова malloc() языка C и со временем может расти (или уменьшаться). Область PGA никогда не входит в состав области SGA - она всегда локально выделяется процессом или потоком.
  Область памяти UGA хранит состояние сеанса, поэтому всегда должна быть ему доступна. Местонахождение области UGA зависит исключительно от конфигурации сервера Oracle. Если сконфигурирован режим MTS, область UGA должна находиться в структуре памяти, доступной всем процессам, следовательно, в SGA. В этом случае сеанс сможет использовать любой разделяемый сервер, так как каждый из них сможет прочитать и записать данные сеанса. При подключении к выделенному серверу это требование общего доступа к информации о состоянии сеанса снимается, и область UGA становится почти синонимом PGA, - именно там информация о состоянии сеанса и будет располагаться. Просматривая статистическую информацию о системе, можно обнаружить, что при работе в режиме выделенного сервера область UGA входит в PGA (размер области PGA будет больше или равен размеру используемой памяти UGA - размер UGA будет учитываться при определении размера области PGA).
  Процессы
  Осталось рассмотреть последний элемент "головоломки". Мы изучили организацию базы данных и набор образующих ее физических файлов. Разбираясь с использованием памяти сервером Oracle, рассмотрели половину экземпляра. Оставшийся компонент архитектуры - набор процессов, образующий вторую половину экземпляра. Некоторые из этих процессов, например процесс записи блоков в базу данных (DBWn) и процесс записи журнала (LGWR), уже упоминались. Здесь мы более детально рассмотрим функцию каждого процесса: что и почему они делают. В этом разделе "процесс" будет использоваться как синоним "потока" в операционных системах, где сервер Oracle реализован с помощью потоков. Так, например, если описывается процесс DBWn, в среде Windows ему соответствует поток DBWn.
  В экземпляре Oracle есть три класса процессов.
  1. Серверные процессы. Они выполняют запросы клиентов. Мы уже затрагивали тему выделенных и разделяемых серверов. И те, и другие относятся к серверным процессам.
  2. Фоновые процессы. Это процессы, которые начинают выполняться при запуске экземпляра и решают различные задачи поддержки базы данных, такие как запись блоков на диск, поддержка оперативного журнала повторного выполнения, удаление прекративших работу процессов и т.д.
  3. Подчиненные процессы. Они подобны фоновым процессам, но выполняют, кроме того, действия от имени фонового или серверного процесса.
  
  Экземпляр - это набор процессов операционной системы и используемая ими память. Все эти процессы могут работать с базой данных, которая представляет собой просто набор файлов (файлов данных, временных файлов, файлов журнала повторного выполнения, управляющих файлов). В каждый момент времени с экземпляром связан только один набор файлов. В большинстве случаев обратное утверждение тоже верно; с базой данных работает только один экземпляр. В случае же использования параллельного сервера Oracle (Oracle Parallel Server - OPS), опции Oracle, позволяющей серверу функционировать на нескольких компьютерах в кластерной среде, одна и та же база данных может быть одновременно смонтирована и открыта несколькими экземплярами. Это делает возможным доступ к базе данных одновременно с нескольких компьютеров. Oracle Parallel Server позволяет создавать системы с высокой доступностью данных и, при условии правильной реализации, очень масштабируемые.
  http://citforum.ru/database/oracle/kyte/02.shtml
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"