шпаргалка

Конфигурации и архитектура Oracle. Табличные пространства. Сегменты, экстенты и блоки данных. Экземпляр Oracle.

[ Назад ]

Oracle занимает лидирующие позиции на рынке СУБД и, что особенно важно, лидирует на

платформах Unix и Windows. В России также обозначилось лидерство Oracle, особенно в области крупномасштабных информационных систем государственных структур. Фактически в нашей стране СУБД Oracle стала стандартом для государственных информационных систем.

Причина широкой распространенности Oracle заключается прежде всего в высоких

эксплуатационных характеристиках СУБД, большом количестве подготовленных отечественных специалистов по Oracle, наличию поддерживающей инфраструктры – учебных центров, широкой сети партнеров Oracle, большому числу технических курсов по Oracle в высших учебных заведениях и т.д. Так, только в Москве имеется более десятка учебных центров, предоставляющих широкий спектр технических курсов практически по всем линиям программных продуктов Oracle. Партнерская сеть по всей стране насчитывает более 160 организаций, что гарантирует поддержку ПО Oracle практически в любой точке страны. На русском языке уже издано достаточно много качественных книг по СУБД Oracle.

Служба технической поддержки Oracle построена на профессиональной основе. В Центре

технической поддержке в Москве работает более 20 сертифицированных технических специалистов,

занятых только поддержкой пользователей Oracle (по телефону, электронной почте и с выездом к заказчику). Служба технической поддержки в России сертифицирована по стандарту ISO 9000. Важным является и то, что наряду с СУБД, компания Oracle поставляет центральный инфраструктурный продукт – Internet Application Server, сервер приложений, функционирующих в среде Internet/Intranet.

С технической точки зрения важно то, что Oracle функционирует практически на всех существующих компьютерных платформах, в том числе и на больших ЭВМ (OS/390) и на еще сохраняющих популярность системах Vax VMS, не говоря уже о Windows NT и различных разновидностях Unix, в точ числе Solaris, HP-UX, AIX, Linux, SCO Unix и т.д.

Другой важной характеристикой является поддержка Oracle всех возможных вариантов архитектур, в том числе симметричных многопроцессорных систем, кластеров, систем с массовым параллелизмом и т.д. Очевидна значимость этих характеристик для систем масштаба корпорации, где эксплуатируется множество компьютеров различных моделей и производителей. В таких условиях фактором успеха является максимально возможная типизация предлагаемых решений, ставящая своей целью существенное снижение стоимости владения программным обеспечением.Унификация систем управления базами данных – один из наиболее значимых шагов на пути достижения этой цели. Ядром СУБД Oracle является сервер базы данных, который поставляется в одном из четырех вариантов в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. Для систем масштаба крупной организации предлагается продукт Oracle Database Enterprise Edition (корпоративная редакция), для которого имеется целый набор опций, архитектурно

и функционально расширяющих возможности сервера. Именно Oracle Database Enterprise Edition устанавливается на кластерах (с опцией Parellel Server), позволяя создавать системы высокой готовности. Продукт Oracle Database Standard Edition (стандартная редакция) ориентирован на организации среднего масштаба или подразделения в составе крупной организации. Для персонального использования предназначен продукт Oracle Database Personal Edition (персональная редакция).

Важнейшим преимуществом Oracle перед конкурентами (и, прежде всего, перед SQL Server) является идентичность кода (в оценке Gartner Group - консолидация кода) различных версий сервера баз данных Oracle для всех платформ, гарантирующая идентичность и предсказуемость работы Oracle на всех типах компьютеров, какие бы не входили в ее состав. Все варианты сервера Oracle имеют в своей основе один и тот же исходный программный код и функционально идентичны, за исключением некоторых опций, которые, например, могут быть добавлены к Oracle Database Enterprise Edition и не могут - к Oracle Database Standard Edition. Таким образом, для всех платформ существует единая СУБД в различных версиях, которая ведет себя одинаково и предоставляет одинаковую функциональность вне зависимости от платформы, на которой она установлена. Разработку серверных продуктов в составе СУБД выполняет единое подразделение корпорации Oracle, изменения вносятся централизовано, после этого подвергаются тщательному тестированию в базовом варианте, а затем переносятся на все платформы, где также детально проверяются. Возможность переноса Oracle обеспечивается специфической структурой исходного программного кода сервера. Приблизительно 80% программного кода Oracle – это программы на языке программирования C, который (с известными ограничениями) является платформо-независимым. Примерно 20% кода, представляющее собой ядро сервера, реализовано на машинно-зависимых языках и эта часть кода, разумеется, переписывается для различных платформ.

Жесткая технологическая схема разработки Oracle, опирающаяся на принципы идентичности

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

Суммируя все сказанное выше, можно утверждать, что СУБД Oracle обладает уникальными

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

переносимых приложений клиент/сервер и Internet/Intranet-приложений. Наличие нескольких

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

Существует много видов конфигураций. Давайте рассмотрим основные из них, проанализируем и определим характеристики.

OLTP (Online Transaction Processing) - оперативная обработка транзакций. Это самая распространенная конфигурация. OLTP-система состоит из пользователей, которые взаимодействуют с системой. Эти системы обычно используются для оперативного ввода первичной информации (заполнение контрактов, проверка номеров кредитных карт, асинхронные транзакции и др.).

Характерные черты OLTP-систем: обычно поддерживает большое число пользователей, работающих с СУРБД. Так как пользователи ждут возвращения данных на запросы, то большое значение имеет время ответа. OLTP-системы сопряжены с интенсивными процессами чтения-записи. В зависимости от приложения рейтинг чтения-записи может варьироваться.

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

Характерные черты DSS: долго выполняющиеся запросы в противовес большим объемам данных. Пользователи DSS-систем вынуждены ждать ответа на запрос минуты, часы, а иногда и несколько дней. Данные обычно собираются из разных источников, а затем происходит их обработка. DSS-система сопряжена с интенсивным процессом чтения (процессы записи происходят гораздо реже).

Хранилище данных (Data Warehouse) - это крупномасштабная система, которая состоит как из OLTP, так и из DSS. Эти системы, как правило, работают с сотнями гигабайт данных и обслуживают огромное количество пользователей.

Характерные черты хранилища данных: имеет некоторые атрибуты DSS-систем, т.е. долго выполняющиеся запросы, а также компоненты для работы в реальном времени. Эти компоненты часто используются в качестве источников данных для DSS-запросов.

Информационная лавка (Data Mart) - это уменьшенная версия хранилища данных (ориентирована на решение узкоспециализированных задач), при этом сохраняет многие особенности Data Warehouse.

Характерные черты информационной лавки: обычно 100 гигабайт данных или менее. Так же, как и хранилище данных поддерживает большое количество пользователей и позволяет генерировать сложные решения.

Видео-сервер: позволяет поддерживать большое количество видеопотоков. Эти видеопотоки могут использоваться по заказу, в качестве развлечения и как обучающие курсы.

Характерные черты видео-сервера: должен иметь широкую полосу пропускания, чтобы поддерживать несколько видеопотоков. Также, должен быть способен справляться с большой нагрузкой ввода/вывода. При чтении с устройств, загружаются сразу большие блоки данных, которые мало фрагментированы.

Веб-сервер: предназначен для работы со статическими и динамическими веб-страницами. Эти страницы могут быть как очень простыми, так и комплексными, генерируемыми из базы данных. Веб-сервер Oracle, как правило, используется для коммерческих веб-приложений. Такие приложения позволяют покупателям просматривать каталоги, которые содержат изображения товаров и даже видео иллюстрации. Покупатель может приобрести понравившийся товар.

Характерные черты веб-сервера Oracle: обычно поддерживает значительное число пользователей, содержит большое число данных, к которым обращаются часто, и, в то же время, данные, к которым обращаются не очень часто. Производительность сервера может улучшить большое количество оперативной памяти.

OLAP(Online Analytical Processing) - аналитическая обработка в реальном времени. Обычно используется вместе с многомерными данными. OLAP-пользователи - это финансовые аналитики или маркетинговый персонал, работающий с данными на глобальном уровне.

Характерные черты OLAP-систем: требуют большого объема дисковой памяти и мощных вычислительных систем. OLAP-система может поддерживать лишь небольшое количество пользователей. Однако число пользователей зависит от конкретной конфигурации.

Обзор архитектуры ORACLE

Система Управления Реляционными Базами Данных (СУРБД) Oracle предназначена для одновременного доступа к большим объемам хранимой информации. СУРБД складывается из двух составляющих: База Данных (информация) и экземпляр (конкретная реализация системы). База данных состоит из физических файлов, хранящихся в системе, и из логических частей (например, схема БД). Эти файлы могут быть совершенно разными, их мы рассмотрим чуть далее. Экземпляр - это способ доступа к данным, который состоит из процессов и системной памяти.

Примечание: В Oracle8 появилась система объектов. В связи с этим, корпорация Oracle иногда называет свой продукт объектно-ориентированной СУРБД (О-СУРБД). Однако, для ясности, я буду называть ее просто СУРБД.

БД Oracle состоит из двух уровней: физический и логический. Физический уровень включает файлы, которые хранятся на диске, а логический уровень представляет компоненты физического уровня. Рассмотрим эти уровни более подробно.

Физический уровень

Физический уровень включает три категории файлов:

1) один или более файлов данных - В этих файлах хранится информация, имеющаяся в БД. Вы можете иметь как один файл данных, так и сотни таких файлов. Информация из одной таблицы может быть разбросана по нескольким файлам данных (а несколько таблиц могут делить между собой пространство файлов данных). Распределение таблиц по нескольким файлам данных может значительно увеличить производительность системы. Количество файлов данных ограничено параметром MAXDATAFILES.

2) два или более файлов журналирования операций (redo log files) - Файлы журналирования операций содержат информацию, необходимую для процесса восстановления в случае сбоя системы. Файлы журналирования операций (называемые также просто журналом операций) хранят все изменения, которые произошли в БД. С помощью журнала операций восстанавливаются те изменения, которые были произведены, но не зафиксированы перед сбоем системы. Файлы журналирования операций должны быть очень хорошо защищены против аппаратных сбоев (как на программном, так и на аппаратном уровне). Если информация журнала операций будет утеряна, то Вы не сможетевосстановить систему.

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

Логический уровень

Логический уровень составляют следующие элементы:

1) Одно или несколько табличных пространств;

2) Схема БД, состоящая из таблиц, кластеров, индексов, представлений, хранимых процедур и т.д.

Табличные пространства и файлы данных

База данных разделяется на одну или более логических частей, называемых табличными пространствами. Табличные пространства используются для логической группировки данных между собой. Например, Вы можете определить одно табличное пространство для бухгалтерских данных, а другое для складских. Сегментирование групп по табличным пространствам упрощает администрирование этих групп. Каждое табличное пространство состоит из одного или более файлов данных.

Используя несколько файлов данных для одного табличного пространства, можно распределить их по разным дискам, увеличив тем самым скорость ввода-вывода и, соответственно, производительность системы. Таким образом, БД Oracle состоит из табличных пространств, которые, в свою очередь, состоят из файлов данных. А файлы данных могут быть разбросаны по нескольким физическим дискам. Зарисуйте эту схему или четко представьте ее в голове.

В процессе создания БД Oracle автоматически, специально для Вас, строится табличное пространство SYSTEM. Хотя для небольших баз данных может хватить этого табличного пространства, но все же следует создать дополнительные табличные пространства для пользовательских данных. В табличном пространстве SYSTEM хранится словарь данных. Как Вы, наверное, помните, в словаре данных содержится информация о таблицах, индексах, кластерах и т.д.

Каждая база данных ORACLE подразделяется на логические элементы, называемые ТАБЛИЧНЫМИ ПРОСТРАНСТВАМИ(TABLESPACE). Администратор базы данных может использовать табличные пространства для:

- управления распределением памяти для объектов базы данных

- установления квот памяти для пользователей базы данных

- управления доступностью данных, путем перевода отдельных табличных пространств в состояния online или offline

- копирования и восстановления данных

- распределения данных по устройствам для повышения производительности

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

Каждая база данных ORACLE содержит табличное пространство SYSTEM, которое создается автоматически при создании базы данных. Табличное пространство SYSTEM всегда содержит таблицы словаря данных для всей базы данных. Небольшой базе данных может оказаться достаточным одного табличного пространства SYSTEM; однако рекомендуется создать по меньшей мере одно дополнительное пространство, чтобы хранить данные пользователей отдельно от информации словаря данных. Это позволит более гибко осуществлять разнообразные операции администрирования.

Размер табличного пространства - это размер его файла данных или суммарный размер всех файлов данных, составляющих это табличное пространство.

Онлайновые и офлайновые табличные пространства

АБД может перевести любое табличное пространство в базе данных ORACLE в состояние ОНЛАЙН (т.е. доступно) или ОФЛАЙН (недоступно), если база данных открыта. Единственным исключением является то, что табличное пространство SYSTEM всегда находится в онлайне, ибо словарь данных должен быть всегда доступен ORACLE. Обычное состояние табличного пространства - онлайн, так что данные, содержащиеся в нем, доступны пользователям базы данных. Однако администратору может понадобиться перевод табличного пространства в офлайн по одной из следующих причин:

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

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

чтобы сделать приложение вместе с его группой таблиц временно недоступным на время обновления или сопровождения этого приложения

Когда табличное пространство переводится в офлайн, ORACLE не позволяет последующим предложениям SQL обращаться к объектам этого табличного пространства.

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

Файлы данных

Табличное пространство в базе данных ORACLE состоит из одного или нескольких физических ФАЙЛОВ ДАННЫХ. Файлы данных, ассоциированные с табличным пространством, хранят все данные этого табличного пространства. Любой файл данных может ассоциироваться только с одним табличным пространством и только с одной базой данных. При создании файла данных для табличного пространства ORACLE распределяет ему указанное количество дисковой памяти. Когда файл данных создается, операционная система несет ответственность за очистку старой информации и за установку должных режимов доступа к файлу, прежде чем он будет распределен ORACLE. Если файл велик, этот процесс может потребовать значительного времени. Поскольку первым табличным пространством в любой базе данных всегда является SYSTEM, первые файлы данных любой базы данных автоматически распределяются табличному пространству SYSTEM во время создания базы данных.

Содержимое файла данных

После первоначального создания файла данных соответствующее дисковое пространство еще не содержит никаких данных; однако это пространство ЗАРЕЗЕРВИРОВАНО за будущими сегментами ассоциированного табличного пространства - оно не может содержать каких-либо иных данных. Когда сегмент (например, сегмент данных таблицы) будет создан и начнет увеличиваться в размерах, ORACLE использует свободное место в соответствующих файлах данных, чтобы распределять экстенты для этого сегмента. Данные в сегментах объектов (сегментах данных, сегментах индексов, сегментах отката и т.д.) в табличном пространстве физически хранятся в одном или нескольких файлах данных, составляющих это табличное пространство.

Офлайновые файлы данных

Табличные пространства в любой момент можно переводить в ОФЛАЙН (т.е. делать недоступными) или в ОНЛАЙН (делать доступными). Поэтому все файлы данных, составляющие табличное пространство, переводятся в офлайн или онлайн одновременно, всей группой. Индивидуальные файлы данных также могут быть переведены в офлайн; однако это обычно делается лишь при некоторых процедурах восстановления базы данных.

Сегменты, экстенты и блоки данных

В СУБД Oracle контроль над дисковым пространством происходит с использованием специальных логических структур. Эти структуры следующие:

- блоки данных - Это наименьшая единица хранения данных в БД Oracle. Блок БД содержит заголовочную информацию о себе, и данные.

- экстенты - Экстент состоит из блоков данных.

- сегменты - Сегмент состоит из совокупности экстентов, содержащих определенный вид данных.

Сегменты

БД Oracle использует четыре типа сегментов:

- сегмент данных - хранит пользовательские данные.

- индексный сегмент - содержит индексы.

- сегмент отката - хранит информацию отката, используемую при возврате к предыдущему состоянию БД.

- временный (промежуточный) сегмент - создается в случае, если для выполнения SQL-выражения необходимо дополнительное рабочее пространство. Эти сегменты уничтожаются сразу после выполнения SQL-команд. Промежуточные сегменты используются также в разнообразных операциях с БД, например, при сортировке.

Экстенты

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

При создании табличного пространства, Вы можете указать минимальное число определения экстент, а также число экстент, добавляемых при заполнении уже определенных. Это распределение позволяет вам контролировать пространство хранилища БД.

Блоки данных

Это наименьшие единицы БД Oracle. Они физически хранятся на диске. Блоки данных на большинстве систем 2Кб (2048 байт), но Вы можете изменить этот размер на свое усмотрение для увеличения эффективности работы системы. На самом низком уровне рассмотрения, данные базы данных ORACLE хранятся в БЛОКАХ ДАННЫХ (называемых также логическими блоками, блоками ORACLE или страницами). Один блок данных соответствует фиксированному числу байт физического пространства базы данных на диске. Размер блока данных специфически устанавливается для каждой базы данных ORACLE при ее создании. Этот размер кратен размеру блока операционной системы, но не превышает определенный максимум. Важно помнить, что база данных, на ее самом низком уровне, использует и распределяет свободное пространство в базе данных блоками данных ORACLE. По контрасту с этим, все данные на физическом уровне, т.е. на уровне операционной системы, распределяются в байтах. Каждая операционная система имеет то, что называется РАЗМЕРОМ БЛОКА, который определяется как специфическое число байт на диске. ORACLE управляет пространством в файлах данных базы данных в единицах, называемых БЛОКАМИ ДАННЫХ. Блок данных - это наименьшая единица ввода-вывода, используемая базой данных. Блок данных соответствует физическому блоку на диске с размером, совпадающим с размером блока данных ORACLE. Этот размер блока может отличаться от стандартного размера блока ввода-вывода операционной системы, в которой выполняется ORACLE. Формат блока данных ORACLE один и тот же, независимо от того, содержит ли блок данные таблицы, индекса или кластера.

Экземпляр ORACLE

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

Что же представляет собой разделяемая память (shared memory)? Oracle использует разделяемую память в разных целях: как кэширование данных и индексов, так и хранение программного кода. Разделяемая память делится на несколько частей (или структур памяти). Основными структурами памяти Oracle являются Системная Глобальная Область (System Global Area или SGA) и Программная Глобальная Область (Program Global Area или PGA).

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

- кэш буферов БД - здесь хранятся последние открытые блоки данных. Эти блоки могут содержать данные, которые изменились, но еще не были записаны на диск (грязные блоки); данные, которые не изменялись либо были записаны на диск после изменения (чистые блоки). Так как кэш буферов БД хранит блоки данных на основе алгоритма последних используемых блоков, то наиболее активно используемые блоки постоянно остаются в памяти (тем самым, снижая дисковый ввод/вывод и увеличивая производительность системы).

- буфер журнала изменений - хранит данные об изменениях БД. Буфер журнала изменений записывается в файл журнала изменений настолько быстро и эффективно, насколько это возможно. Помните, что журнал изменений используется для восстановления экземпляра СУБД Oracle в случае

сбоя системы.

- разделяемый пул - Это область SGA, в которой хранятся такие структуры разделяемой памяти, как разделяемые SQL-области в библиотечном кэше и внутренняя информация словаря данных. Разделяемый пул важен, потому что недостаточный объем памяти, выделенный для него, может привести к деградации производительности всей системы. Разделяемый пул состоит из библиотечного кэша и кэша словаря данных.

Библиотечный кэш используется для хранения разделяемых SQL. Здесь для каждого уникального SQL-выражения строиться дерево разбора строк и план исполнения, которые кэшируются (т.е. сохраняются в библиотечном кэше). Если несколько приложений отправляют одинаковые SQL-выражения, то для ускорения работы используется разделяемая SQL-область (так как используются уже разобранные строки и готовый план исполнения, то происходит экономия времени).

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

- пользовательская информация (например, пользовательские привилегии) - ограничения целостности, определенные для таблиц БД - имена и типы данных всех столбцов таблиц БД.

- информация об объеме памяти, определенном и используемом объектами схемы данных.

Oracle часто обращается к словарю данных при разборе SQL-выражений. Эти обращения составляют сущность работы Oracle. Узкие места в словаре данных влияют работу всех пользователей системы Oracle. Поэтому Вы всегда должны быть уверены, что объем памяти, определенный для словаря данных, достаточно велик для кэширования данных. Если кэш словаря данных мал, то Вы заметите значительное снижение производительности. Когда под кэш словаря данных Вы определите достаточный объем памяти, существенных проблем с производительностью быть не должно.

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

- пространство стека - это память, хранящая переменные сеансов, массивы сеансов и т.д.

- информация сеанса - если Oracle работает не в мультинитевом режиме, то информация сеанса хранится в PGA. В противном случае, информация сеанса хранится в SGA.

- приватная SQL-область - это часть PGA, где хранятся связанные переменные и буферы реального времени.

Процессы

Процесс (или нить) - это механизм выполнения программного кода, который может выполняться незаметно для пользователя. Кроме того, несколько процессов могут работать одновременно. В разных операционных системах и на разных платформах они могут называться по-разному (процессы, нити, демоны и т.д.), но, в сущности, одинаковы. СУРБД Oracle работает с двумя видами процессов: пользовательские процессы и процессы Oracle (также известные как фоновые или теневые). В некоторых операционных системах (таких как Windows NT) процессы действительно являются нитями, но, чтобы не путаться в понятиях, будем называть их просто "процессами".

Пользовательские процессы

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

Процессы Oracle

Процессы Oracle выполняют функции для пользовательских процессов. Могут быть разбиты на две группы: серверные процессы (выполняющие функции для активных процессов) и фоновые процессы (выполняют функции СУРБД в целом).

Серверные процессы (теневые) взаимодействуют между процессами пользовательскими и Oracle, исполняя пользовательские запросы. Например, если пользовательский процесс запрашивает часть данных, которых еще нет в SGA, то теневой процесс несет ответственность за чтение блоков данных из БД в SGA.

Между пользовательским и теневым процессом возникает связь один-к-одному (конфигурация выделенного сервера), хотя один теневой процесс может одновременно взаимодействовать с несколькими пользовательскими (конфигурация мультинитевого сервера), экономя системные ресурсы.

Фоновые процессы используются для выполнения разнообразных задач СУРБД Oracle. Эти задачи варьируются от взаимодействия с экземпляром Oracle до записи грязных блоков на диск. Далее представлены девять фоновых процессов Oracle:

- DBWR (DataBase WRiter) - ответственен за запись грязных блоков из блоковых буферов БД на диск. Когда транзакция изменяет информацию в блоке данных, этот блок данных не обязан быть немедленно записан на диск. Следовательно, DBWR может записывать данные на диск способом более эффективным, чем запись всех изменений по отдельности. DBWR обычно записывает данные тогда, когда они уже нужны для чтения. Записываются также те данные, которые были недавно использованы. Для систем с асинхронным вводом/выводом достаточно одного процесса DBWR.

Для остальных систем можно значительно увеличить производительность, создав несколько процессов DBWR.

- LGWR (LoG WRiter) - записывает данные из журнального буфера в журнал изменений.

- CKPT (ChecK PoinT) - дает сигнал процессам DBWR о необходимости выполнения контрольной точки и обновления всех файлов данных и управляющих файлов. Контрольная точка - это событие, когда все измененные буферы БД записываются на диск. CKPT - это не обязательный процесс. Если процесс CKPT не запущен, то его работу принимает на себя LGWR.

- PMON (Process MONitor) - используется для поддержания остальных процессов и перезапуска преждевременно погибших :) Также PMON очищает неиспользуемые области буферов и освобождает те ресурсы, которые могут быть еще заняты. Ответственен за перезапуск всех зависших процессов

и диспетчеров.

- SMON (System MONitor) - выполняет восстановление экземпляра при его запуске. Это включает очистку временных сегментов и восстановление незаконченных транзакций. А также дефрагментирует БД.

- RECO (RECOvery) - очищает незаконченные транзакции в распределенной БД. Выполняет фиксацию или откат спорных транзакций.

- ARCH (ARCHiver) - копирует файлы журнала изменений при их заполнении. ARCH активен только в том случае, если СУРБД работает в режиме ARCHIVELOG. Если система не работает в этом режиме, то возможны ситуации, в которых не удастся восстановить систему после сбоя. В некоторых

случаях все же можно работать и в режиме NOARCHIVELOG.

- LCKn (Parallel Server LoCK) - до десяти процессов (где n - от 0 до 9) могут использоваться при работе сервера в параллельном режиме. Выполняют функции межэкземплярной блокировки.

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



КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |