Студопедия

КАТЕГОРИИ:


Архитектура-(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), которые выполняют функции межэкземплярной блокировки.

 

<== предыдущая лекция | следующая лекция ==>
Основные обязанности DBA следующие | Обеспечение целостности данных
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 2167; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.031 сек.