Файлы данных Oracle Database

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

Файл данных состоит из блоков базы данных, в свою очередь, состоя­щих из дисковых блоков операционной системы. Размер блока в Ora­cle варьируется от 2 до 32 Кбайт. До выхода версии Oracle9i база дан­ных состояла из блоков одного размера. В более поздних версиях вы по-прежнему можете задать размер блока базы по умолчанию, но вообще-то в базе данных может использоваться до пяти разных размеров блоков (хотя в каждом табличном пространстве возможен только один размер блока). На рис. 1 показано соотношение блоков Oracle с бло­ками операционной системы.


Оглавление статьи[Показать]


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

Файлы данных - это самый низкий уровень гранулярности взаимо­действий между Oracle и операционной системой. При размещении ба­зы данных на физических устройствах наименьшая сущность, кото­рую можно куда-то поместить, - это файл. Оптимизация подсистемы ввода/вывода для повышения производительности Oracle обычно включает перемещение файлов данных с одного набора дисков на дру­гой. Подсистема Automatic Storage Management, входящая в версии начиная с Oracle Database 10g, обеспечивает автоматическое расслое­ние вместо ручной настройки этого аспекта работы.

Блоки Oracle и блоки операционной системы

Рис. 1. Блоки Oracle и блоки операционной системы

 

Задание размера блока базы данных

До выхода версии Oracle9i размер блока задавался в момент соз­дания базы данных, а изменить его, не создавая базу заново, бы­ло невозможно. В Oracle9i появилась дополнительная гибкость - в одной и той же базе можно использовать блоки разного размера. Во всех версиях по умолчанию устанавливается размер блока, заданный в параметре инициализации экземпляра DB_BLOCK_SIZE.

Как выбрать правильный размер блока? По умолчанию размер блока Oracle совпадает с размером блока операционной системы. Однако зная, что именно зависит от размера блока, вы сможете подобрать размер, более подходящий для ожидаемой рабочей нагрузки.

Размер блока - это минимальный размер порции данных, считы­ваемой или записываемой за один раз. В системах оперативной обработки транзакций (OLTP) типичная транзакция затрагивает относительно немного строк, например, строки размещения за­каза от конкретного клиента на закупку ряда товаров. При этом доступ к строкам обычно производится с помощью индексов, а не путем сканирования всей таблицы. Поэтому вполне может хватить блоков небольшого размера (4 Кбайт). Тогда Oracle не будет зря расходовать системные ресурсы на передачу больших бло­ков, содержащих ненужные для транзакции данные.

В случае хранилищ данных запрос может потребовать считыва­ния миллионов строк и сканирования всех данных в таблице. Для таких операций задание большого блока позволяет за один раз считать больше данных, необходимых пользователю. Поэто­му для хранилищ данных обычно используются блоки размером 8 или 16 Кбайт. При этом каждая операция ввода/вывода зани­мает чуть больше времени, но это с лихвой окупается уменьше­нием общего числа операций.

 

Структура файла данных Oracle

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

 

Экстенты и сегменты

С точки зрения физической организации, файл данных представляет собой набор блоков операционной системы. А с логической точки зре­ния, в файлах данных можно выделить три структурных уровня: бло­ки данных, экстенты и сегменты. Экстентом называется набор смеж­ных блоков в файле данных. Сегмент - это объект в базе данных Ora­cle, например таблица или индекс, состоящий из одного или несколь­ких экстентов.

Выполняя операцию обновления, Oracle сначала пытается обновить данные, не выходя за пределы исходного блока. Если в этом блоке не­достаточно места для новой информации, то Oracle записывает данные в новый блок, который может находиться в другом экстенте. Этот материал особенно важен, если вы работаете со старыми версиями Oracle. В Oracle Database 10g добавлен консуль­тант Segment Advisor, который сильно упрощает процедуру освобож­дения неиспользуемого пространства.

Вас заинтересует / Intresting for you:

Oracle Personal Edition
Oracle Personal Edition 5963 просмотров Надин Tue, 21 Nov 2017, 13:32:12
Базы данных Oracle: что нужно ...
Базы данных Oracle: что нужно ... 64880 просмотров Ирина Светлова Thu, 24 Jun 2021, 20:01:45
Oracle alerts: генерируемые се...
Oracle alerts: генерируемые се... 7216 просмотров Алексей Вятский Tue, 21 Nov 2017, 13:18:05
Установка Oracle 11g на Linux
Установка Oracle 11g на Linux 22901 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать

Doc аватар
Doc ответил в теме #9131 5 года 7 мес. назад
Еще бы примеры команд по конфигурированию control файлов добавить...