Распределенные СУБД. Архитектура MS SQL Server 2005 и ORACLE Server 10g.

Архитектура SQL Server

Архитектура Oracle

Сервер ORACLE состоит из следующих частей.

  1. Экземпляр - это набор процессов операционной системы и используемая ими память. Экземпляр Oracle состоит из двух частей: области SGA и набора фоновых процессов. Фоновые процессы выполняют рутинные задачи сопровождения, обеспечивающие работу СУБД.
  2. База данных 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, архитектура многопотокового сервера) соответствие - многие к одному (много клиентов и один разделяемый сервер).

Табличные пространства. Структура табличных пространств. Типы табличных пространств.

Словарь данных (словарь данных Oracle).

Первыми таблицами, создаваемыми в любой базе данных, являются системные таблицы. Системные таблицы хранят информацию о структуре базы данных и объектов внутри нее, и Oracle обращается к ним, когда нуждается в информации о базе данных или когда выполняет операторы DDL, DML. Обновление в этих таблицах происходит в фоновом режиме всякий раз, когда выполняется оператор DDL.

Сегменты отката UNDO (ROLLBACK).

Когда данные в Oracle изменяются, изменение должно быть или подтверждено, или отменено. Если изменение отменяется ("откатывается назад"), содержимое блоков данных восстанавливается в исходное состояние, существовавшее до изменения. Сегменты отката - это системные объекты, которые поддерживают этот процесс. Используются для хранения старых образов данных при выполнении транзакций.

Временные (TEMPORARY).

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

Словарь ORACLE. Типы (группы) таблиц словаря. Получение информации о таблицах словаря. Отличия между v$, DBA_, USER_, ALL_ группами таблиц.

Словарь данных. Первыми таблицами, создаваемыми в любой базе данных, являются системные таблицы, или словарь данных Oracle. Системные таблицы хранят информацию о структуре базы данных и объектов внутри нее, и Oracle обращается к ним, когда нуждается в информации о базе данных или когда выполняет оператор DDL (Data Definition Language - язык определения данных) либо оператор DML (Data Manipulation Language - язык манипулирования данными). Эти таблицы никогда непосредственно не обновляются, однако обновление в них происходит в фоновом режиме всякий раз, когда выполняется оператор DDL. Главные таблицы словаря данных содержат нормализованную информацию, которая является довольно трудной для восприятия человеком, так что в Oracle предусмотрен набор представлений, выдающих информацию главных системных таблиц в более понятном виде. Oracle запрашивает информацию из таблиц словаря данных для синтаксического разбора любого оператора SQL. Информация кэшируется в области словаря данных разделяемого пула в SGA.
v$ - виртуальные представления словаря данных (доступны пользователю SYS), динамические таблицы производительности, доступные пользователю SYS, позволяют управлять производительностью работы сервера СУБД.
Префиксом USER снабжаются представления, наиболее интересные для обычного пользователя, объекты, владелец которых - текущий пользователь, префиксом ALL снабжаются все доступные пользователю представления и префиксом DBA - доступные пользователям с системными полномочиями, данные о БД.
Информацию из таблиц словаря можно выбирать с помощью оператора select. Информация о таблицах и представлениях словаря данных - dict (dictionary), информация о столбцах словаря данных - dict_columns. Информация о каждом параметре инициализации сервера БД (просмотр параметров экземпляра) - v$parameter.

  • Нет меток