Распределенные СУБД. Архитектура MS SQL Server 2005 и ORACLE Server 10g
Сервер ORACLE состоит из следующих частей.
- Экземпляр - это набор процессов операционной системы и используемая ими память. Экземпляр Oracle состоит из двух частей: области SGA и набора фоновых процессов. Фоновые процессы выполняют рутинные задачи сопровождения, обеспечивающие работу СУБД.
-
База данных Oracle - набор физических файлов операционной системы. База данных может быть смонтирована и открыта в нескольких экземплярах. Экземпляр может смонтировать и открыть только одну базу данных в каждый момент времени. В каждый момент времени с экземпляром связан только один набор файлов.
- Файлы данных. В этих файлах хранятся данные в виде таблиц, индексов и всех остальных сегментов.
- Файлы журнала повторного выполнения. Журналы транзакций.
- Управляющие файлы. Определяют местонахождение файлов данных и содержат другую необходимую информацию о состоянии базы данных.
- Временные файлы. Используются при сортировке больших объемов данных и для хранения временных объектов.
- Файлы паролей. Используются для аутентификации пользователей, выполняющих администрирование удаленно, по сети.
- Файлы параметров определяют конфигурацию экземпляра.
SGA и PGA
Oracle использует память системы (как реальную, так и виртуальную) для выполнения пользовательских процессов и самого программного обеспечения СУБД, и для кэширования объектов данных. Существуют два вида областей памяти Oracle - SGA и PGA.
Системная память Oracle для всей базы данных называется SGA (system global агеа - системная глобальная область или Shared Global Area - разделяемая глобальная область). Данные и управляющие структуры в SGA являются разделяемыми, и все фоновые процессы Oracle и пользовательские процессы могут к ним обращаться.
В буферном кэше сервер Oracle хранит блоки базы данных перед их записью на диск, а также после считывания с диска.
Буфер журнала повторного выполнения используется для временного кэширования данных активного журнала повторного выполнения перед записью на диск.
В разделяемом пуле сервер Oracle кэширует различные "программные" данные. Здесь кэшируются результаты разбора запроса, выполняемый сеансом PL/SQL-код, хранятся параметры системы, кэш словаря данных, содержащий информацию об объектах базы данных.
PGA - память пользовательского процесса. Для каждого подключения к базе данных Oracle выделяет PGA (Process Global Area - глобальную область процесса или program global агеа - глобальную область программы) в памяти машины и, кроме того, - PGA для фоновых процессов. Эта область памяти содержит данные и управляющую информацию одного процесса и между процессами не разделяется. В PGA располагаются области сортировки, области хешей и другие структуры процесса.
Процессы ORACLE. Отличия между SHARED и DEDICATED экземплярами
DBWn - процесс записи в БД, отвечает за запись измененных блоков на диск.
LGWR отвечает за сброс на диск содержимого буфера журнала повторного выполнения, находящегося в области SGA.
PMON - монитор процессов, осуществляет управление процессами, отвечает за очистку после нештатного прекращения подключений, регистрирует запущенные экземпляры в процессе прослушивания.
SMON - системный монитор, инициализирует структуры, осуществляет дефрагментацию таблиц, осуществляет восстановление экземпляра после сбоев и так далее.
CKPT - процесс контрольной точки, осуществляет сброс грязных блоков на диск с пометкой синхронизации в момент времени (блок - грязный, если был изменен после подъема с диска).
Listener - серверный процесс прослушивания, обеспечивающий физическое подключение к базе данных, выполняет запросы, читает данные с диска. На диск данные пишет фоновый процесс.
ARCn копирует в redo log активный файл журнала повторного выполнения, когда он заполняется процессом LGWR. Эти архивные файлы журнала повторного выполнения затем можно использовать для восстановления носителя.
RECO восстанавливает транзакции, оставшиеся в готовом состоянии из-за сбоя или потери связи в ходе изменения данных на нескольких удаленных базах.
Dn отвечает за обслуживание разделяемым сервером клиентов.
При использовании выделенного сервера имеется соответствие один к одному между клиентским сеансом и серверным процессом (идеально подходит системам оперативной обработки транзакций - ООТ). В режиме MTS (Multi-Threaded Server, архитектура многопотокового сервера) соответствие - многие к одному (много клиентов и один разделяемый сервер).