Студопедия

КАТЕГОРИИ:


Архитектура-(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




 

1. Администрирование баз данных Oracle

Архитектура Oracle

Три основных компонента:

· Файлы параметров, сообщений, данных, временных данных, журналов

· Физические процессы или потоки (серверные процессы, фоновые процессы, подчиненные процессы).

· Структура памяти

Серверная часть Oracle

Базы данных – это набор физических файлов операционной системы.

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

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

Термин “база данных” означает физические файлы, в которых находятся данные. База данных может быть доступна многим экземплярам, но экземпляр в каждый момент времени обеспечивает доступ только к одной базе данных.

 

Схема СУБД Oracle

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

Фоновые процессы - это постоянно работающие процессы, образующие экземпляр. Они появляются при запуске СУБД и работают до тех пор пока она не будет восстановлена. Обычно СУБД Oracle при подключение пользователя создает новый процесс. Это принято называть конфигурацией выделенного сервера, а все потому, что на все время сеанса ему выделяется отдельный серверный процесс. Таким образом, сеансы и выделенные сервера находятся в отношении 1:1. Клиентский процесс – это конфигурация, при которой пользователь создает новый процесс. Клиентский процесс (любая программа), пытающийся подключится с СУБД, будет непосредственно взаимодействовать с соответствующим выделенным сервером. Единственное его назначение отвечать на получаемый SQL запрос. СУБД Oracle так же может работать в режиме многопоточного сервера (МТС), в котором при подключении не создается дополнительный поток или процесс, а используется пул разделяемых серверов для поддержки большего кол-ва пользователей. Разделяемые серверы - это просто механизм организации подключения. В режиме МТС разделяемые серверные процессы обычно запускаются сразу при старте СУБД и отображаются в списке выдаваемом командой PS (для UNIX) и tlist (для Windows). Принципиальное отличие режима МТС от режима выделенного сервера состоит в том, что клиентский процесс, подключившийся к СУБД, никогда не взаимодействует непосредственно с разделяемым сервером, как это происходит в случае выделенного сервера, так как соответствующий процесс используется совместно. Что бы обеспечить совместное использование этих процессов, необходим другой алгоритм. Для этого СУБД Oracle использует сопроцессы, которые называют диспетчерами. Клиентский процесс взаимодействует по сети с процессом диспетчером. Процесс диспетчер помещает запрос клиента в очередь запросов в область памяти SGA. Первый же свободный разделяемый сервер выберет и обработает этот запрос. По завершению выполнения команды разделяемый сервер поместит ответ в очередь ответов. Процесс диспетчер следит за очередью и немедленно передает полученный результат клиенту.

 

Файлы баз данных

В состав базы данных входит 6 типов файлов, с экземпляром связанных с файлом параметров, по которым экземпляр при запуске определяет свои характеристики. Например, размер структур памяти и местонахождение управляющих файлов. Базу данных образую:

· Файлы данных

· Файлы журнала повторного выполнения (журнала транзакций)

· Управляющие файлы

· Временные файлы

· Файлы-пароли

Наиболее важны первые два типа файлов. Остальные параметры так же важны, но не связанны с поддержкой сети и обеспечение к базе данных. Файл параметра инициализации экземпляра называют файлом init.ora. SID – это идентификатор экземпляра.

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

Сегменты – это области на диске, выделяемые под объекты. При создании таблицы создается сегмент таблицы. При создании секционированной таблицы создается по сегменту для каждой секции. При создании индекса создается сегмент индекса и т.д., т.е. каждый объект, занимающий место на диске, хранится в одном сегменте. Сегменты в свою очередь состоят из одного или нескольких экстентов. Экстент – это непрерывный фрагмент пространства в файле. Каждый сегмент первоначально состоит хотя бы из одного экстента. Причем для некоторых объектов требуется минимум два экстента. Чтобы объект мог вырасти за пределы исходного экстента, ему необходимо выделить следующий экстент. Размер экстента варьируется от одного блока до двух гигабайт. Экстенты состоят из блоков. Блок – наименьшая единица выделения пространства Oracle. В блоках хранятся строки данных, индексов иди промежуточные результаты сортировок.

Размер блока в базе данных с момента ее создания величина постоянная, посему все блоки в базе данных одного размера.

Заголовок блока содержит информацию о типе блока, информацию о текущих и прежних транзакциях, затронувших блок.

Каталог таблиц содержит информацию о таблицах, строки которых хранятся в этом блоке.

Каталог строк содержит описание хранящихся в блоке строк. Это массив указателей на строки.

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

Это пространство недопустимо для данных и используется для сервера Oracle для управления блоком. Остальные две части блока:

1) Занятое пространство, в котором хранятся данные

2) Табличное пространство – это контейнер с сегментами.

Каждый сегмент принадлежит к одному табличному пространству. Все экстенты сегмента находятся в табличном пространстве. Сегменты никогда не переходят границ табличного пространства. Экстент любого сегмента табличного пространства целиком уменьшается в одном файле данных. Табличные пространства Oracle - это логические структуры хранения данных. Разработчики создают сегменты в табличных пространствах. Они никогда не переходят на уровень файлов. То есть нельзя указать, что экстенты должны выделятся из определенного файла. Объекты создаются в табличных пространствах, об остальном заботится сервер Oracle. Если в дальнейшем администратор базы данных решит перенести файлы данных на другой диск, на работе приложения это никак не отразится. Иерархия объектов хранения данных Oracle выглядит следующим образом:

1) База данных, состоящая из одного или нескольких табличных пространств

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

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

4) Экстент – это набор расположенных рядом на диске блоков. Экстент целиков находится в одном табличном пространстве и, более того, в одном файле данных этого табличного пространства.

5) Блок – наименьшая единица управления пространством в базе данных.

Он же наименьшая единица ввода-вывода, используемая сервером.

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

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

Команда Create Temporary Tablespace

Управляющий файл – это сравнительно небольшой файл (редко имеет размер больше 64 мб), содержащий информацию обо всех файлах необходимых серверу Oracle. Из файла параметров инициализации «init.orac».




Поделиться с друзьями:


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


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



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




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