КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Физическая архитектура хранения данных
СУРБД Oracle, предназначенная для одновременного доступа к большим объемам (терабайтам) хранимой информации, складывается из двух составляющих: базы данных (информации) и экземпляра (конкретной реализации системы). • База данных. Состоит из физических файлов, хранящихся в системе, и логических файлов (например, схемы БД). Физические файлы хранятся на диске, а логические файлы являются компонентами физического уровня. Итак, базы данных Oracle состоят из двух уровней: физического и логического. Физический уровень БД включает в себя три категории файлов: файлы данных, файлы журналов операций, управляющие файлы. · Файлы данных хранят информацию, имеющуюся в БД. Причем в БД может храниться и один файл данных и сотни. Информация из одной таблицы может быть распределена по нескольким файлам данных, а также несколько таблиц могут делить между собой пространство одного файла данных. При этом распределение таблиц по нескольким файлам данных может значительно увеличить производительность системы. Количество файлов данных ограничивается параметром maxdatafiles. · Файлы журналов операций (redo log files) содержат информацию, необходимую для процесса восстановления в случае сбоя системы, и все изменения, которые произошли в базе данных. С помощью журнала операций восстанавливают те изменения, которые были произведены, но не зафиксированы перед сбоем системы, поэтому файлы журналов операций должны быть очень хорошо защищены от аппаратных сбоев (как на программном, так и на аппаратном уровне). Если информация журнала операций будет утеряна, восстановить систему будет практически невозможно. · Управляющие файлы содержат информацию, необходимую для запуска экземпляра Oracle (в том числе расположение файлов данных и файлов журналов операций), и они также должны быть хорошо защищены.
Логический уровень БД составляют следующие элементы: табличные пространства и схемы БД. • Табличные пространства — это одна или несколько логических частей, на которые подразделяется база данных и которые используются для логической группировки данных между собой. Например, можно определить одно табличное пространство для бухгалтерских данных, а другое — для складских. Сегментирование групп по табличным пространствам упрощает администрирование этих групп. Каждое табличное пространство может состоять из одного или многих файлов данных. Используя несколько файлов данных для одного табличного пространства, можно распределить их по разным дискам, увеличив тем самым скорость ввода-вывода и соответственно производительность системы. • Схемы БД — специальные логические структуры, с помощью которых в СУРБД Oracle происходит контроль над дисковым пространством. Эти структуры состоят из блоков данных, экстентов, сегментов. Блок данных — это наименьшая единица хранения данных в БД Oracle. Блоки данных, содержащие заголовочную информацию о себе и данные, физически хранятся на диске и в большинстве систем занимают 2 Кбайт (2 048 байт), но для увеличения эффективности работы системы этот размер можно изменить. Экстенты состоят из блоков данных и являются строительными блоками сегментов. Используются они для минимизации неиспользуемого (пустого) пространства хранилища. По мере увеличения количества данных в табличных пространствах экстенты используются для хранения тех данных, которые могут разрастаться. Таким образом, несколько табличных пространств могут делить между собой пространство хранилища без предварительного определения их разделов.
При создании табличного пространства можно указать минимальное число экстент, что позволит контролировать все пространство хранилища БД. Сегменты, в свою очередь, состоят из совокупностей экстентов, содержащих определенный вид данных. БД Oracle использует четыре типа сегментов: · сегмент данных, хранящий пользовательские данные; · индексный сегмент, содержащий индексы; · сегмент отката, хранящий информацию отката, используемую при возврате к предыдущему состоянию БД; · временный (промежуточный) сегмент, создаваемый в случае если для выполнения SQL-выражения необходимо дополнительное рабочее пространство и уничтожаемый сразу после выполнения SQL-команд. Промежуточные сегменты используются также в различных операциях с БД, например при сортировке. Экземпляр. Представляет собой конкретный способ доступа к данным и состоит из разделяемой памяти и процессов. Разделяемая память (shared memory) используется для кэширования данных и индексов, а также для хранения программного кода. Разделяемая память подразделяется на несколько частей (или структур памяти), основными из которых являются: системная глобальная область (System Global Area) и программная глобальная область (Program Global Area). Системная глобальная область (SGA) — это область разделяемой памяти, которая используется для хранения данных и управляющей информации одного конкретного экземпляра Oracle. SGA размещается в памяти при запуске экземпляра Oracle и освобождает память при останове. Каждый запущенный экземпляр Oracle имеет свою собственную SGA. SGA включает в себя следующие компоненты, создаваемые в памяти при запуске экземпляра: кэш буфер БД, буфер журнала изменений, разделяемый пул. Кэш буфер БД хранит последние открытые блоки данных. Эти блоки могут содержать данные, которые изменились, но еще не были записаны на диск (грязные блоки), и данные, которые не изменялись либо были записаны на диск после изменения (чистые блоки). Так как кэш буферов БД хранит блоки данных на основе алгоритма последних используемых блоков, то наиболее активно используемые блоки постоянно остаются в памяти (снижая дисковый ввод-вывод и увеличивая производительность системы). Буфер журнала изменений хранит данные об изменениях БД, записываясь в файл журнала изменений, используемого для восстановления экземпляра СУБД Oracle в случае сбоя системы, настолько быстро и эффективно, насколько это возможно.
Разделяемый пул хранит такие структуры разделяемой памяти, как разделяемые SQL-области в библиотечном кэше и внутренняя информация словаря данных. Состоит из библиотечного кэша и кэша словаря данных. Библиотечный кэш используется для хранения разделяемых SQL-выражений. Здесь для каждого уникального SQL-выражения строятся дерево разбора строк и план исполнения, которые кэширу-ются (т.е. сохраняются в библиотечном кэше). Если несколько приложений отправляют одинаковые SQL-выражения, то для ускорения работы используется разделяемая SQL-область (так как при использовании уже разобранных строк и готового плана исполнения происходит экономия времени). Кэш словаря данных содержит набор таблиц и представлений, используемых в качестве ссылок к БД Oracle. Здесь хранится информация о логической и физической структуре БД. Словарь данных содержит следующую информацию: · пользовательскую (например, пользовательские привилегии); · ограничения целостности, определенные для таблиц БД; · имена и типы данных всех столбцов таблиц БД; · об объеме памяти, определенном и используемом объектами схемы данных. Для обеспечения высокой производительности необходимо устанавливать достаточный объем памяти под кэш словаря данных. • Программная глобальная область (PGA) — это область памяти, в которой хранятся данные и управляющая информация о серверных процессах Oracle. Размер и содержание PGA определяют опции, задаваемые при инсталляции Oracle. Эта область включает в себя следующие компоненты: · пространство стека — память, хранящая переменные сеансов, массивы сеансов и т.д.; · информация сеанса (только если Oracle работает не в мультинитиевом режиме); · приватная SQ L-o б л а с т ь — часть PGA, где хранятся связанные переменные, и буферы реального времени. Процесс — это механизм выполнения программного кода, который может быть незаметным для пользователя. Кроме того, несколько процессов могут работать одновременно. В разных операционных системах и на разных платформах этот механизм может называться по-разному (процесс, нить, домен и т.д.). В СУРБД Oracle используются два вида процессов: пользовательские процессы и процессы Oracle, также называемые фоновыми, или теневыми. В некоторых операционных системах (например, Windows NT) процессы действительно являются нитями, но, чтобы не путаться в понятиях, будем называть их просто процессами.
· Пользовательские (клиентские) процессы — это пользовательские соединения с СУРБД. Пользовательский процесс управляет вводом и взаимодействует с серверными процессами в Oracle через ее программный интерфейс. Он также используется для выдачи информации пользователю и при необходимости представляет ее в более удобной форме. · Процессы Oracle выполняют функции пользовательских процессов и могут быть разбиты на серверные (выполняющие функции для активных процессов) и фоновые (выполняющие функции СУРБД в целом). Серверные (теневые) процессы взаимодействуют с процессами пользовательскими и Oracle, исполняя пользовательские запросы. Например, если пользовательский процесс запрашивает часть данных, которых еще нет в SGA, то теневой процесс несет ответственность за считывание блоков данных из БД в SGA. При этом между пользовательским и теневым процессами возникает связь типа «один к одному», хотя один теневой процесс может одновременно взаимодействовать с несколькими пользовательскими (конфигурация мультинитевого сервера), экономя системные ресурсы. Фоновые процессы используются для выполнения разнообразных задач СУРБД Oracle — от взаимодействия с экземпляром Oracle до записи грязных блоков на диск. Представим некоторые из фоновых процессов Oracle. DBWR (DataBase Writer) — ответственен за запись грязных блоков из блоковых буферов БД на диск. Когда транзакция изменяет информацию в блоке данных, этот блок данных не обязан быть немедленно записан на диск. Следовательно, DBWR может записывать данные на диск более эффективно, чем выполнять запись всех изменений по отдельности, т.е. обычно он записывает их тогда, когда они нужны для считывания. Записываются также те данные, которые были недавно использованы. Для систем с асинхронным вводом-выводом достаточно одного процесса DBWR. Для остальных систем можно значительно увеличить производительность, создав несколько процессов DBWR, таких как LGWR, СКРТ, PMON, SMON, RECO, ARCH, LCK«. LGWR (LoG WRiter) — записывает данные из журнального буфера в журнал изменений. СКРТ (ChecK PoinT) — дает сигнал процессам DBWR о необходимости выполнения контрольной точки и обновления всех файлов данных и управляющих файлов. Контрольная точка — это событие, при котором все измененные буферы БД записываются на диск. СКРТ — это необязательный процесс. Если процесс СКРТ не запущен, его работу принимает на себя процесс LGWR. PMON (Process MONitor) — используется для поддержания остальных процессов и перезапуска после сбоя, а также очищает неиспользуемые области буферов и освобождает те ресурсы, которые могут быть еще заняты. Ответственен за перезапуск всех зависших процессов и диспетчеров. SMON (System MONitor) — выполняет восстановление экземпляра при его запуске, что включает очистку временных сегментов и восстановление незаконченных транзакций, а также де-фрагментирует БД. RECO (RECOvery) — очищает незаконченные транзакции в распределенной БД. Выполняет фиксацию или откат спорных транзакций. ARCH (ARCHiver) — копирует файлы журнала изменений при их заполнении. Активен только в том случае, если СУРБД работает в режиме ARCHrVELOG. При работе системы в других режимах возможны ситуации, в которых не удастся восстановить ее после сбоя. LCK«(Parallel Server LoCK) — использует при работе сервера в параллельном режиме до 10 процессов (л — от 0 до 9), которые выполняют функции межэкземплярной блокировки.
Дата добавления: 2014-01-07; Просмотров: 2166; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |