Управление информацией

Программное обеспечение баз
данных - это ключ к решению проблем управления информацией. Вообще говоря,
система управления базой данных (СУБД) должна быть способна надежно управлять
большими объемами данных в многопользовательской среде, так, чтобы все
пользователи могли одновременно обращаться к одним и тем же данным. Все это
должно достигаться при обеспечении высокой производительности пользователей базы
данных. СУБД также должна быть защищена от несанкционированного доступа, и
должна предоставлять эффективные решения для восстановления от
сбоев. управление большими базами данных и контроль
управления пространством. ORACLE поддерживает самые большие базы данных,
потенциального размера до сотен гигабайт. Чтобы обеспечить действенный контроль
за использованием дорогостоящих дисковых устройств, он предоставляет полный
контроль распределения пространства. ORACLE поддерживает большое число пользователей, одновременно
выполняющих разнообразные приложения, которые оперируют одними и теми же
данными. Он минимизирует соперничество за данные и гарантирует согласованность
данных. ORACLE
поддерживает все описанные выше средства, сохраняя высокую степень суммарной
производительности системы На некоторых
установках ORACLE работает 24 часа в сутки, не имея периодов разгрузки,
ограничивающих пропускную способность базы данных. Нормальные системные
операции, такие как откат базы данных, а также частичные сбои компьютерной
системы, не прерывают работу с базой данных. ORACLE может выборочно управлять доступностью данных, как на
уровне базы данных, так и на более низких уровнях. Например, администратор может
отключить доступ к конкретному приложению (с тем, чтобы можно было осуществить
перезагрузку данных этого приложения), не затрагивая других
приложений. ORACLE удовлетворяет промышленно
принятым стандартам по языку доступа к данным, операционным системам,
интерфейсам с пользователем и сетевым протоколам. Это "открытая" система,
которая защищает инвестиции заказчика. Сервер ORACLE7 был сертифицирован
Национальным институтом стандартов и технологий США как 100%-совместимый со
стандартом ANSI/ISO SQL89. ORACLE7 полностью удовлетворяет требованиям
правительственного стандарта США FIPS127-1 и имеет "маркировщик" для
подчеркивания нестандартных применений SQL. Кроме того, ORACLE7 был оценен
Правительственным национальным центром компьютерной безопасности (NCSC) как
совместимый с критериями защиты Оранжевой книги; сервер ORACLE7 и Trusted
ORACLE7 отвечают соответственно как уровням C2 и B1 Оранжевой книги, так и
сравнимым с ними европейским критериям защиты ITSEC. Для защиты от несанкционированного доступа к базе данных ORACLE
предоставляет защищенные от сбоев средства безопасности, лимитирующие и
отслеживающие доступ к данным. Эти средства позволяют легко управлять даже
наиболее сложными схемами доступа. ORACLE автоматически поддерживает целостность данных, соблюдая
"организационные правила", которые диктуют стандарты приемлемости данных. Как
следствие, устраняются затраты на кодирование и сопровождение проверок в
многочисленных приложениях базы данных. Чтобы извлечь максимум преимуществ из данной
компьютерной системы или сети, ORACLE позволяет разделять работу между сервером
базы данных и прикладными программами клиентов. Вся тяжесть управления совместно
используемыми данными может быть сосредоточена в компьютере, выполняющем СУБД, в
то время как рабочие станции, на которых работают приложения, могут
сконцентрироваться на интерпретации и отображении данных. В компьютерных окружениях, соединенных сетями,
ORACLE комбинирует данные, физически находящиеся на разных компьютерах, в одну
логическую базу данных, к которой имеют доступ все пользователи сети.
Распределенные системы обладают такой же степенью прозрачности для пользователей
и согласованности данных, что и нераспределенные системы, предоставляя в то же
время преимущества управления локальной базой
данных. Программное обеспечение ORACLE переносимо между
различными операционными системами и одинаково во всех системах Приложения,
разрабатываемые для ORACLE, могут быть перенесены в любую операционную систему с
минимумом модификаций или вообще без
таковых. Программное обеспечение ORACLE совместимо с
промышленными стандартами, включая большинство стандартных операционных систем.
Приложения, разрабатываемые для ORACLE, могут использоваться в любой
операционной системе с минимумом модификаций или вообще без
таковых. Программное обеспечение ORACLE позволяет
различным типам компьютеров и операционных систем совместно использовать
информацию посредством сетей. Этот раздел описывает архитектуру базы данных ORACLE, включая
физическую и логическую структуры, которые образуют базу данных Это
обсуждение даст вам понимание того, как ORACLE решает проблемы управляемой
доступности данных, разделения физической и логической структур данных и тонкого
контроля за управлением дисковой памятью. Системы
управления базами данных эволюционировали от иерархических к сетевым, а затем к
реляционным моделям. Сегодня наиболее широко принятой моделью базы данных
является реляционная модель. Эта модель имеет три главных
аспекта: Структурами и данными, хранящимися в них, можно манипулировать
посредством операций. Операции - это четко определенные действия,
позволяющие пользователю манипулировать данными и структурами базы данных.
Операции на базе данных должны подчиняться предопределенному набору правил
целостности. Правила целостности - это законы, которые определяют, какие
операции допускаются над данными и структурами базы данных. Правила целостности
защищают структуры и данные базы данных. независимость физической структуры данных
и логической структуры базы данных БАЗА ДАННЫХ ORACLE - это коллекция данных, рассматриваемая
как единица. Главная цель базы данных - хранение и извлечение взаимосвязанной
информации. База данных ORACLE
может быть ОТКРЫТА (доступна) или ЗАКРЫТА (недоступна). В обычных ситуациях база
данных открыта и доступна для использования. Однако иногда база данных
закрывается для специфических административных функций, которые требуют, чтобы
данные в базе данных были недоступны пользователям. База данных ORACLE имеет как физическую, так и логическую
структуру. За счет разделения физической и логической структуры базы данных
достигается возможность управления физической структурой данных, не затрагивая
доступа к логическим структурам данных. Физическая структура базы данных ORACLE определяется файлами
операционной системы, из которых состоит база данных. Каждая база данных ORACLE
составляется из файлов трех типов: одного или нескольких файлов данных, двух или
более файлов журнала повторения работы и одного или нескольких управляющих
файлов Логическая структура базы данных одним или несколькими
табличными пространствами объектами схем базы данных (таблицами,
обзорами, индексами, кластерами, последовательностями, хранимыми
процедурами) Логические структуры хранения, включая табличные
пространства, сегменты и экстенты, определяют, как используется физическое
пространство базы данных. Объекты схем и отношения между ними формируют
реляционную структуру базы данных. Последующие
подразделы объясняют логические структуры, включая табличные пространства,
объекты схемы, блоки данных, экстенты и сегменты. База данных разделяется на логические единицы хранения,
называемые ТАБЛИЧНЫМИ ПРОСТРАНСТВАМИ. Табличное пространство служит для того,
чтобы группировать вместе взаимосвязанные логические структуры. Например, в
табличном пространстве обычно группируются все объекты приложения, чтобы
упростить некоторые административные операции. Каждая база данных логически
разделяется на одно или более табличных пространств. Для каждого
табличного пространства явно создаются один или более файлов данных, чтобы
физически хранить данные всех логических структур табличного
пространства. Общая емкость памяти табличного пространства
определяется суммой размеров файлов данных, составляющих это табличное
пространство (на рисунке SYSTEM имеет емкость 2M, а DATA -
4M). Табличное пространство может находиться в
состояниях ОНЛАЙН (доступно) или ОФЛАЙН (недоступно). Обычно табличное
пространство находится в онлайне, так что пользователи имеют доступ к информации
в нем. Однако иногда табличное пространство может переводиться в офлайн, чтобы
сделать часть базы данных недоступной, сохраняя в то же время нормальный доступ
к остальной части базы данных. Это облегчает выполнение многих административных
задач. СХЕМА - это коллекция объектов.
ОБЪЕКТЫ СХЕМЫ - это логические структуры, непосредственно относящиеся к данным
базы данных Объекты схемы включают такие структуры, как таблицы, обзоры,
последовательности, хранимые процедуры, синонимы, индексы, кластеры и связи баз
данных. (Не существует взаимосвязи между табличным пространством и схемой;
объекты одной и той же схемы могут находиться в разных табличных пространствах,
и одно и то же табличное пространство может содержать объекты из разных
схем.) ТАБЛИЦА - это основная единица хранения данных в базе
данных ORACLE. Таблицы базы данных хранят все данные, доступные
пользователям. Данные таблицы хранятся в виде СТРОК и СТОЛБЦОВ. Каждая
таблица определяется с ИМЕНЕМ ТАБЛИЦЫ и набором столбцов. Каждому столбцу дается
ИМЯ СТОЛБЦА, ТИП ДАННЫХ (такой как CHAR, DATE или NUMBER), а также ШИРИНА
(которая может быть предопределена типом данных, как в случае DATE) или МАСШТАБ
и ТОЧНОСТЬ (только для типа данных NUMBER). После того, как таблица создана, в
нее могут быть вставлены строки действительных данных. После этого строки
таблицы можно опрашивать, удалять или обновлять. Чтобы учредить
организационные правила для данных таблицы, для таблицы можно также определить
ограничения целостности и триггеры. Обзоры ОБЗОР - это настроенное по
заказу представление данных из одной или нескольких таблиц. Обзор можно
рассматривать как "хранимый запрос". Обзоры в действительности не содержат
данных; вместо этого они доставляют данные из тех таблиц, на которых они
основаны (так называемых БАЗОВЫХ ТАБЛИЦ обзоров). Базовые таблицы, в свою
очередь, могут быть как таблицами, так и обзорами. Как и таблицы, обзоры
можно опрашивать, обновлять и осуществлять в них вставки и удаления, с
некоторыми ограничениями. Все операции, осуществляемые над обзором, в
действительности затрагивают базовые таблицы этого обзора. Обзоры
предоставляют дополнительный уровень защиты таблиц, ограничивая доступ
предопределенным множеством строк и столбцов базовой таблицы. Например, обзор
можно составить так, что столбцы со специфической информацией (скажем,
сведениями о зарплате) не включаются в определение обзора. Обзоры
позволяют скрыть сложность данных. Например, единственный обзор может служить
для построения СОЕДИНЕНИЯ, которое является отображением взаимосвязанных
столбцов или строк из нескольких таблиц. Однако такой обзор скрывает тот факт,
что эти данные на самом деле принадлежат разным таблицам Обзоры
помогают упростить команды для пользователя. Например, с помощью обзора
пользователь может выбирать информацию из нескольких таблиц, не зная, как
осуществлять сложный коррелированный запрос. Обзоры представляют
данные с иной точки зрения, чем они представлены в таблице. Например, с помощью
обзора можно переименовать столбцы, не затрагивая самих таблиц, на которых
базируется обзор Обзоры позволяют составлять и сохранять сложные
запросы. Например, запрос может выполнять обширные вычисления по информации
таблицы. Благодаря тому, что этот запрос сохраняется как обзор, вы выполняете
эти вычисления только при обращении к обзору. ПОСЛЕДОВАТЕЛЬНОСТЬ генерирует уникальные порядковые
номера, которые могут использоваться как значения числовых столбцов таблиц базы
данных. Последовательности упрощают прикладное программирование, автоматически
генерируя уникальные числовые значения для строк одной или нескольких
таблиц. Например, предположим, что двое пользователей одновременно
вставляют строки о новых сотрудниках в таблицу EMP. Благодаря использованию
последовательности для генерации уникальных номеров сотрудников для столбца
EMPNO, никто из них не должен ожидать другого, чтобы ввести очередной свободный
номер сотрудника. Последовательность автоматически генерирует правильное
значение для каждого из пользователей. Номера, генерируемые
последовательностью, независимы от таблиц, так что одну и ту же
последовательность можно использовать для нескольких таблиц. После ее создания,
к последовательности могут обращаться различные пользователи, чтобы получать
действительные порядковые номера. ПРОЦЕДУРА или
ФУНКЦИЯ - это совокупность предложений SQL и PL/SQL, сгруппированных вместе как
выполнимая единица, исполняющая специфическую задачу. Процедуры и функции
сочетают легкость и гибкость SQL с процедурными возможностями языка структурного
программирования С помощью PL/SQL такие процедуры и функции можно
определять и сохранять в базе данных для продолжительного
использования. Процедуры и функции похожи друг на друга, с той разницей,
что функция всегда возвращает вызывающей программе единственное значение, тогда
как процедура не возвращает значения. ПАКЕТЫ дают метод инкапсулирования и
хранения взаимосвязанных процедур, функций и других конструктов пакета как
единицы в базе данных. Предоставляя администратору базы данных или разработчику
приложений организационные преимущества, пакеты в то же время расширяют
функциональные возможности и увеличивают производительность базы данных. СИНОНИМ - это алиас (дополнительное имя) для таблицы, обзора,
последовательности или программной единицы. Синоним не есть объект, но он
является прямой ссылкой на объект. Синонимы используются
для: Синоним может быть общим или личным. Индивидуальный
пользователь может создать ЛИЧНЫЙ СИНОНИМ, который доступен только этому
пользователю. Администраторы баз данных чаще всего создают ОБЩИЕ СИНОНИМЫ,
благодаря которым объекты базовых схем становятся доступными для общего
пользования всем пользователям базы данных. Индексы, кластеры и хэшированные кластеры - это
необязательные структуры, ассоциированные с таблицами, которые можно создавать
для повышения производительности операций извлечения данных Так же, как
индекс в книге позволяет вам быстрее отыскивать нужную информацию, индекс ORACLE
предоставляет быстрый путь доступа к данным таблицы. При обработке запроса
ORACLE может использовать некоторые или все имеющиеся индексы для эффективного
отыскания запрашиваемых строк. Индексы полезны, когда приложения часто
опрашивают интервалы строк таблицы, либо отдельные строки. Однажды созданный,
индекс автоматически поддерживается и используется ORACLE. Изменения в данных
таблицы (такие как добавление новых строк, обновление или удаление строк)
автоматически отражаются во всех соответствующих индексах при полной
прозрачности для пользователей. Индексы логически и физически независимы от
данных. Их можно удалять и создавать в любой момент, не оказывая влияния на
другие таблицы или другие индексы. После удаления индекса все приложения будут
функционировать по-прежнему; однако доступ к ранее индексированным данным может
быть замедлен. КЛАСТЕРЫ предоставляют необязательный способ хранения данных
таблиц. Кластер - это группа из одной или нескольких таблиц, физически
хранящихся вместе, так как они имеют общие столбцы м часто используются
совместно. Ввиду того, что взаимосвязанные строки хранятся физически близко друг
от друга, время дискового доступа сокращается. Взаимосвязанные столбцы
таблиц в кластере называются КЛЮЧОМ КЛАСТЕРА. Ключ кластера индексируется, так
что строки кластера могут извлекаться с минимальными затратами на ввод-
вывод Поскольку данные ключа кластера в индексированном (не хэшированном)
кластере хранятся в одном экземпляре для всех таблиц кластера, достигается
экономия пространства по сравнению с обычными (некластеризованными) таблицами.
Связанные
данные хранятся Связанные данные хранятся вместе, более эффективно отдельно,
занимая больше места Кластеры могут также повысить эффективность извлечения
данных, в зависимости от распределения данных и от того, какие операции SQL
наиболее часто выполняются на кластеризованных данных. В частности,
кластеризованные таблицы, опрашиваемые через соединения, выигрывают за счет
кластеров, потому что строки, общие для объединяемых таблиц, извлекаются за одну
операцию ввода-вывода. Является ли таблица частью кластера или нет, остается прозрачным
для пользователей и приложений. Данные, хранящиеся в кластеризованной таблице,
доступны через те же операции SQL, как если бы они не были
кластеризованы. ХЭШИРОВАННЫЕ КЛАСТЕРЫ похожи на обычные, индексированные,
кластеры. Однако в хэшированных кластерах строки записываются не на основе ключа
кластера, а на основе значения ФУНКЦИИ ХЭШИРОВАНИЯ, применяемой к ключу
кластера. Все строки с одинаковым значением такого хэш-ключа хранятся на диске
вместе. Хэшированные кластеры выигрывают по сравнению с индексированной
таблицей и индексированным кластером, когда таблица часто опрашивается на
равенство (например, выбираются все строки по отделу 10). Для таких запросов
значения указанного ключа кластера хэшируются, и результирующие значения хэш-
ключа прямо указывают на участок диска, в котором хранятся соответствующие
строки. СВЯЗЬ БАЗ ДАННЫХ - это именованный объект,
который описывает "путь" от одной базы данных к другой. Связи баз данных неявно
используются при обращении к ГЛОБАЛЬНОМУ ИМЕНИ ОБЪЕКТА в распределенной базе
данных. ORACLE предоставляет
возможность тонкого контроля за использованием дисковой памяти через структуры
логического хранения, включая блоки данных, экстенты и сегменты. Блоки
данных ORACLE На самом низком уровне, данные базы данных ORACLE хранятся в
БЛОКАХ ДАННЫХ. Один блок данных соответствует специфическому числу байт
физического пространства на диске. Размер блока данных указывается для каждой
базы данных ORACLE при ее создании. База данных использует и распределяет
свободное пространство в блоках данных ORACLE. Экстенты Следующий уровень
логического пространства в базе данных называется экстентом. ЭКСТЕНТ - это
специфическое число непрерывных блоков данных, полученных за одно распределение
и используемых для хранения специфического типа информации. Сегменты
Уровень логического пространства в базе данных, следующий за экстентом,
называется сегментом. СЕГМЕНТ - это набор экстентов, распределенных для
конкретной логической структуры. Например, различные типы сегментов
включают: Сегмент данных Каждая некластеризованная таблица имеет сегмент
данных. Все данные таблицы хранятся в экстентах ее сегмента данных Данные каждой таблицы кластера хранятся в
сегменте данных этого кластера. Сегмент отката
Администратор создает в базе данных один или несколько сегментов отката для
временного хранения информации "отмены" для генерации согласованных по чтению образов информации базы
данных Временный сегмент
Временные сегменты создаются ORACLE, когда предложению SQL требуется временная
рабочая область для своего выполнения. После выполнения предложения экстенты
временного сегмента возвращаются системе. Когда существующие экстенты сегмента
заполняются, ORACLE распределяет очередной экстент для данного сегмента по мере
необходимости. Ввиду того, что память выделяется при необходимости, экстенты
данного сегмента могут не быть непрерывными на диске. Последующие секции объясняют физические структуры базы данных ORACLE,
включая файлы данных, файлы журнала повторения работы и управляющие
файлы. Каждая база данных ORACLE имеет один или
более физических ФАЙЛОВ ДАННЫХ. Эти файлы содержат все данные базы данных.
Данные логических структур базы данных, таких как таблицы и индексы, физически
хранятся в файлах данных, распределенных для базы данных. Файл данных может быть ассоциирован
лишь с одной базой данных. Один или несколько файлов данных формируют
логическую единицу пространства базы данных, называемую табличным
пространством. Данные в файле
данных считываются по мере необходимости во время нормальной работы базы данных,
и размещаются в кэше памяти ORACLE. Например, предположим, что пользователь
хочет обратиться к некоторым данным в таблице базы данных. Если запрошенная
информация еще не находится в кэше памяти для базы данных, она считывается из
соответствующих файлов данных и размещается в памяти. Модифицированные или
новые данные необязательно записываются в файл данных немедленно. Чтобы
уменьшить объем дисковых операций и увеличить производительность, данные
накапливаются в памяти, и записываются в соответствующие файлы данных
одномоментно, как определяется фоновым процессом ORACLE, называемым DBWR.
Каждая база данных ORACLE имеет набор
из двух или более ФАЙЛОВ ЖУРНАЛА ПОВТОРЕНИЯ РАБОТЫ. Комплект файлов журнала
повторения работы для одной базы данных совместно называется ЖУРНАЛОМ ПОВТОРЕНИЯ
(redo log). Основная функция журнала повторения - регистрация всех изменений,
осуществляемых в данных. Все изменения, выполняемые в базе данных, записываются
в журнал повторения. Если в результате сбоя модифицированные данные не удастся
постоянно записать в файлы данных, эти изменения можно получить из журнала
повторения, так что работа никогда не теряется. Файлы журнала повторения
критичны в вопросе защиты базы данных от сбоев. Чтобы защититься от таких сбоев,
которые затрагивают сам журнал повторения, ORACLE допускает ЗЕРКАЛЬНЫЙ ЖУРНАЛ
ПОВТОРЕНИЯ, так что две или более копий журнала повторения можно поддерживать
одновременно на разных дисках. Информация в файле журнала повторения используется только для
восстановления базы данных после сбоя системы или носителя, в результате
которого данные базы данных не могут быть записаны в файлы
данных. Например, когда неожиданное отключение питания резко прерывает
работу базы данных, данные в памяти не могут быть записаны в файлы данных.
Однако всепотерянные данные могут быть восстановлены при последующем открытии
базы данных после устранения неисправности в питании. ORACLE автоматически
применяет к файлам базы данных все изменения, зарегистрированные в самых
последних файлах журнала повторения, и восстанавливает базу данных в состояние
на момент сбоя. Процесс применения журнала повторения в процессе операции
восстановления базы данных называется ПРОКРУТКОЙ ВПЕРЕД. Каждая база данных ORACLE имеет УПРАВЛЯЮЩИЙ ФАЙЛ, в котором
записывается физическая структура базы данных. В частности, этот файл содержит
следующую информацию: имена и
местоположения файлов данных и файлов журнала повторения этой базы
данных Как и для
журнала повторения, ORACLE позволяет поддерживать зеркальные управляющие файлы с
целью защиты управляющей информации. При каждом запуске инстанции базы данных ORACLE ее управляющий файл
используется для того, чтобы идентифицировать базу данных и файлы журнала
повторения, которые должны быть открыты для продолжения работы базы данных.
Когда физический состав базы данных изменяется (например, создается новый файл
данных или файл журнала), ORACLE автоматически модифицирует управляющий файл,
чтобы отразить это изменение. Словарь
данных Каждая база данных ORACLE имеет СЛОВАРЬ ДАННЫХ. Он представляет
собой набор таблиц и обзоров, используемых как ТОЛЬКО ЧИТАЕМОЕ представление
базы данных. Например, в словаре данных хранится информация о логической и
физической структуре базы данных о действительных
пользователях базы данных ORACLE о том, сколько пространства
распределено для каждого объекта схемы, и сколько из него
используется Словарь данных создается при создании самой базы
данных. Чтобы точно отражать состояние базы данных в любой момент, словарь
данных автоматически обновляется ORACLE в ответ на специальные действия (такие
как изменение структуры базы данных). Словарь данных критичен для
работоспособности базы данных, ибо на нем основывается регистрация, верификация
и управление текущей работой. Например, во время операций с базой данных ORACLE
обращается к словарю данных для проверки того, что объекты схем существуют и что
пользователи имеют к ним соответствующие права доступа. В этом разделе обсуждаются структуры памяти и процессов,
которые используются ORACLE для управления базой данных. Среди прочего,
архитектурные особенности, описываемые здесь, помогут вам понять, как ORACLE
поддерживает многопользовательский доступ к базе данных, и как обеспечивается
высокая производительность, требующаяся в многопользовательских, многозадачных
системах баз данных. Механизмы ORACLE
работают через использование структур памяти и процессов. Все структуры памяти
располагаются в основной памяти (иногда называемой виртуальной памятью или
памятью произвольного доступа) компьютеров, составляющих систему базы
данных ORACLE создает и
использует свои структуры памяти для выполнения некоторых задач. Например,
память используется для размещения исполняемого программного кода и данных,
разделяемых между пользователями. С ORACLE ассоциируются несколько базовых
структур памяти: глобальная область системы (которая включает буфера базы данных
и журнала повторения, а также разделяемый пул) и глобальные области программ.
Следующие секции подробно объясняют каждую из этих видов
областей. ГЛОБАЛЬНАЯ ОБЛАСТЬ
СИСТЕМЫ (SGA) - это область разделяемой памяти, распределяемая ORACLE, которая
содержит данные и управляющую информацию для одной инстанции ORACLE. Область SGA
и фоновые процессы ORACLE составляют инстанцию ORACLE. SGA распределяется
при запуске инстанции и освобождается при закрытии инстанции. Каждая
запускающаяся инстанция имеет свою собственную область SGA. Данные в SGA
разделяются (т.е. совместно используются) всеми пользователями, присоединенными
к базе данных. Для оптимальной производительности SGA должна быть максимально
большой (пока позволяет реальная память), чтобы держать как можно больше данных
в памяти и минимизировать дисковые операции. Информация, хранящаяся в SGA,
подразделяется на несколько типов структур памяти, включая буфера базы данных,
буфера журнала повторения и разделяемый пул. Эти области имеют фиксированные
размеры и создаются при запуске инстанции. Буферный кэш базы данных БУФЕРА
БАЗЫ ДАННЫХ в SGA хранят наиболее недавно использовавшиеся блоки данных из базы
данных; все множество буферов базы данных в инстанции составляет БУФЕРНЫЙ КЭШ
БАЗЫ ДАННЫХ. Эти буфера могут содержать модифицированные данные, которые еще не
записаны на диск для постоянного храненияT> Поскольку последние
использовавшиеся (в том числе и наиболее часто использующиеся) данные
поддерживаются в памяти, требуется меньше дисковых операций, и
производительность увеличивается. Буфер журнала повторения БУФЕР ЖУРНАЛА
ПОВТОРЕНИЯ в SGA хранит ЗАПИСИ ПОВТОРЕНИЯ - журнал изменений, осуществленных в
базе данных. Записи повторения, хранящиеся в буферах журнала повторения,
записываются в онлайновый файл журнала, который используется при необходимости
восстановления базы данных. Его размер статичен. Разделяемый пул
Разделяемый пул - это часть SGA, содержащая конструкты разделяемой памяти, такие
как разделяемые области SQL Разделяемая область SQL требуется для обработки
каждого уникального предложения SQL, выданного базе данных. Разделяемая область
SGA содержит такую информацию, как дерево разбора и план исполнения для
соответствующего предложения. Единственная разделяемая область SGA используется
всеми приложениями, которые выдают то же самое предложение. Это позволяет
оставлять больше разделяемой памяти для других целей. Курсоры КУРСОР - это
описатель (имя или указатель) области памяти, ассоциированной с конкретным
предложением. Хотя большинство пользователей ORACLE полагаются на автоматическую
обработку курсоров, обеспечиваемую утилитами ORACLE, программные интерфейсы
предлагают разработчикам приложений большую степень контроля над курсорами.
Например, при разработке приложений прекомпиляторов курсор является именованным
ресурсом, доступным программе, и может специально использоваться для разбора
предложений SQL, встроенных в приложение. Разработчик может написать приложение
так, чтобы оно контролировало фазы исполнения предложения SQL и за счет этого
повышало свою производительность. ГЛОБАЛЬНАЯ ОБЛАСТЬ ПРОГРАММЫ (PGA) - это буфер памяти, содержащий
данные и управляющую информацию для процесса сервера ПРОЦЕСС - это "канал управления", механизм в
операционной системе, который исполняет последовательность шагов. Некоторые
операционные системы используют термины ЗАДАНИЕ или ЗАДАЧА СУБД ORACLE
имеет два общих типа процессов: пользовательские процессы и процессы
ORACLE. ПОЛЬЗОВАТЕЛЬСКИЙ
ПРОЦЕСС создается и поддерживается для исполнения программного кода прикладной
программы (такой как программа Pro*C) или инструмента ORACLE (такого как
SQL*DBA) Пользовательский процесс также управляет взаимодействием с
процессами сервера. Это взаимодействие осуществляется через программный
интерфейс, описываемый ниже в этом разделе. ПРОЦЕССЫ ORACLE вызываются другими процессами для того, чтобы
выполнять функции от имени вызывающего процесса. Ниже обсуждаются различные типы
процессов ORACLE и их специфические функции. Процессы сервера ORACLE
создает ПРОЦЕССЫ СЕРВЕРА, чтобы обрабатывать запросы от присоединенных
пользовательских процессов. Процесс сервера отвечает за связь с пользовательским
процессом и за взаимодействие с ORACLE для выполнения запросов ассоциированного
пользовательского процесса. Например, если пользователь запрашивает данные,
которых еще нет в буферах базы данных в SGA, то ассоциированный процесс сервера
считывает соответствующие блоки данных из файлов данных в SGA. ORACLE можно
конфигурировать на различное число пользовательских процессов на один процесс
сервера. В КОНФИГУРАЦИИ ВЫДЕЛЕННОГО СЕРВЕРА каждый процесс сервера обрабатывет
запросы для одного пользовательского процесса. КОНФИГУРАЦИЯ МНОГОКАНАЛЬНОГО
СЕРВЕРА позволяет многим пользовательским процессам совместно использовать
небольшое число процессов сервера, минимизируя количество процессов сервера и
максимизируя утилизацию доступных системных ресурсов. В некоторых системах
пользовательский и серверный процессы разделены, тогда как в других системах они
объединены в единый процесс. Если система конфигурирована на многоканальный
сервер, или если пользовательские и серверные процессы работают на разных
машинах, то пользовательский процесс и процесс сервера должны быть
раздельными. В фоновых процессах сосредоточены те
функции, которые иначе пришлось бы выполнять множеством программ ORACLE,
запускаемых для каждого пользовательского процесса. Фоновые процессы асинхронно
выполняют операции ввода-вывода и отслеживают другие процессы ORACLE,
обеспечивая лучший параллелизм и улучшая производительность и
надежность. Каждая инстанция ORACLE может использовать несколько фоновых
процессов. Эти процессы имеют следующие имена: DBWR, LGWR, CKPT, SMON, PMON,
ARCH, RECO, Dnnn и LCKn. Каждый из этих фоновых процессов описан ниже. ПИСАТЕЛЬ БАЗЫ ДАННЫХ записывает
модифицированные блоки из буферного кэша базы данных в файлы данных. Благодаря
способу, которым ORACLE осуществляет журнализацию, процессу DBWR не требуется
записывать эти блоки при завершении транзакции Вместо этого DBWR оптимизирован
так, чтобы минимизировать обращения к диску. В общем случае, DBWR выполняет
запись лишь тогда, когда в SGA требуется прочитать очередную порцию данных, а в
буферном кэше недостает свободных буферов. Первыми записываются те данные, к
которым было самое давнее обращение. Эти записи
генерируются в буфере журнала повторения в SGA. Когда транзакция завершается и
буфер журнала заполняется, LGWR переписывает записи журнала повторения в файл
журнала повторения. В специфические моменты
времени все модифицированные буфера в SGA записываются процессом DBWR в файлы
данных; это событие называется контрольной точкой. Процесс КОНТРОЛЬНОЙ ТОЧКИ
отвечает за своевременную сигнализацию процессу DBWR о контрольных точках и
обновление всех файлов данных и управляющих файлов базы данных, чтобы отразить
последнюю контрольную точку Монитор системы
(SMON) МОНИТОР СИСТЕМЫ осуществляет восстановление инстанции во время
запуска инстанции. В системе с несколькими инстанциями (при использовании
Параллельного сервера), процесс SMON одной инстанции может также осуществлять
восстановление других сбившихся инстанций. SMON также очищает временные
сегменты, которые больше не используются, и восстанавливает мертвые транзакции,
пропущенные после сбоя и восстановления инстанции в результате сбоев файлов или
офлайновых ошибок. Процесс SMON в конечном счете восстанавливает такие
транзакции, когда табличное пространство или файл переводится в онлайн. SMON
также сжимает свободные экстенты в базе данных, чтобы сделать свободное
пространство непрерывным и более доступным для распределения. МОНИТОР ПРОЦЕССОВ осуществляет восстановление процесса
после сбоя пользовательского процесса. PMON отвечает за очистку кэша и
освобождение ресурсов, использовавшихся процессом. PMON также контролирует
диспетчерские и серверные процессы, и рестартует их, если они сбиваются. АРХИВАТОР копирует онлайновые файлы журнала повторения в
архивную память, когда они переполняются. ARCH активен лишь тогда, когда журнал
повторения используется в режиме ARCHIVELOG. ВОССТАНОВИТЕЛЬ используется для разрешения распределенных
транзакций, зависших в результате сетевого или системного сбоя в распределенной
базе данных. В моменты, определяемые таймером, локальный RECO пытается
соединиться с удаленными базами данных и автоматически подтвердить или отменить
локальную порцию каждой висящей распределенной транзакции. ДИСПЕТЧЕРЫ - это необязательные фоновые процессы, существующие лишь
в конфигурации многоканального сервера. По меньшей мере один диспетчерский
процесс создается для каждого используемого коммуникационного протокола (D000,
..., Dnnn). Каждый диспетчерский процесс отвечает за маршрутизацию запросов от
присоединенных пользовательских процессов к доступным разделяемым серверным
процессам, и за возвращение ответов обратно в ассоциированные пользовательские
процессы. До десяти процессов БЛОКИРОВКИ (LCK0,
..., LCK9) используются для межинстанционных блокировок в среде Параллельного
сервера ORACLE. ПРОГРАММНЫЙ ИНТЕРФЕЙС - это
механизм, посредством которого пользовательский процесс общается с процессом
сервера. Он выступает как метод стандартной коммуникации между любым
инструментом или приложением клиента (таким как SQL*Forms) и программным
обеспечением ORACLE. Программный интерфейс должен: действовать как
механизм коммуникации, форматируя запросы на данные, передавая данные,
перехватывая и возвращая ошибки выполнять преобразование и трансляцию
данных, в частности, между разными типами компьютеров, или во внешние типы
данных программы пользователя Если пользовательский и серверный процессы
находятся на разных компьютерах в сети, или если пользовательские процессы
присоединяются к разделяемым серверным процессам через диспетчерские процессы,
то программный интерфейс включает физическое сетевое соединение, программное
обеспечение коммуникации и SQL*Net. SQL*Net - это интерфейс ORACLE к стандартным
коммуникационным протоколам, обеспечивающий должную передачу данных между
компьютерами.