Администрирование информационных систем Лекция 5. СУБД ORACLE
СУБД ORACLESALES_ IDNAMEPHONEREP_ID 201Unisports Simms Atheletics Delhi Sports Womansport Строка (кортеж) Столбец (атрибут) Таблица (отношение) S_CUSTOMER)
СУБД ORACLE IDLAST_NAMEFIRST_NAME 10HavelMarta 11MageeColin 12GiljumHenry 14NguyenMai SALES_ IDNAMEPHONEREP_ID 201Unisports Simms Atheletics Delhi Sports Womansport Имя таблицы: S_CUSTOMER Имя таблицы: S_EMP Главный ключ Внешний ключ Главный ключ
СУБД ORACLE СУБД Oracle является признанным лидером на рынке реляционных СУБД. Многие новшества в области реляционных СУБД впервые появились и стали стандартом де-факто благодаря продуктам компании Oracle. Поддержка многоплатформенности (существуют версии данной СУБД для различных реализаций UNIX, Windows NT, Netware. OS/2, AS/400, MVS) позволяет сохранить существующие БД, продолжить использование уже имеющихся программных разработок, обеспечивая их масштабируемость и приобретенный опыт администрирования при переходе с одной платформы на другую (например, при увеличении объемов хранимой и обрабатываемой информации).
СУБД ORACLE Программные компоненты в составе СУБД Oracle На верхнем уровне рассмотрения все программные компоненты можно отнести к одной из следующих частей: 1.Серверная часть СУБД (далее «сервер») ведет обработку запросов и управляет файлами БД. 2.Клиентская часть СУБД (далее «клиент») - выдает запросы серверу, используя язык SQL. 3.ПО промежуточного уровня осуществляет взаимодействие клиента и сервера.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер Программные компоненты серверной части СУБД Oracle называются экземпляром БД. Экземпляр БД обслуживает одну связанную с ним БД Oracle. Экземпляр БД характеризуется уникальным идентификатором (System IDentifier SID) и состоит из набора процессов и связанных с ними структур данных в памяти ВУ.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер Процессы переднего плана (Foreground Processes) - непосредственно занимаются обработкой клиентских запросов, находящихся в очереди запросов. Результаты обработки запросов размешаются в очереди ответов. Количество процессов переднего плана регулируется системой автоматически в зависимости от размера очереди запросов.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер Теневые процессы (Background Processes). Каждый теневой процесс обслуживает определенный набор задач: 1) Процесс записи в базу данных (DBWR) - отвечает за запись модифицированных данных из буферов данных в файлы данных. Периодически активизирует процесс СКРТ. 2) Процесс контрольной точки (СКРТ) - обеспечивает явное сохранение данных из кэш-буферов в файлы данных. Регистрирует событие контрольной точки в журнале транзакций, которая указывает, сколько данных журнала транзакций нужно применить для восстановления при сбоях.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер 3) Процесс записи в журнал транзакций (LWR) отвечает за запись информации из буферов журнальных файлов в файлы журналирования транзакций. 4) Процесс оперативного архивирования (ARCH) необязательный процесс (выполняется, если параметр ARCHIVELOG экземпляра БД имеет значение TRUE), который отвечает за своевременное создание резервных копий файлов журнальных групп. 5) Системный монитор (SMON) управляет распределением памяти на диске при выполнении транзакций.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер 6) Монитор процессов (PMON) обеспечивает корректное завершение «зависших» диспетчеров сессий: освобождает память, отменяет незавершенную транзакцию и связанные с ней блокировки. 7) Диспетчеры сессий (Dnnn, где nnn целое число) - обеспечивают управление информацией, связанной с конкретным сеансом работы пользователя, в том числе постановка клиентских запросов в очередь для обработки и возвращение результатов клиентам из очереди ответов.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Сервер Глобальная системная область (System Global Area SGA) область кэш-буферов для работы экземпляра БД. В SGA размешаются следующие кэш-буферы: а) кэш-буферы данных - в них размешаются данные из файлов данных и происходит предварительное изменение этих данных в ходе выполнения транзакций; б) разделяемый пул (Shared Pool) содержат элементы словаря БД. а также планы выполнения процедур и запросов (сценарии выполнения, созданные оптимизатором запросов); в) кэш-буферы журнальных файлов накапливают информацию о происходящих в системе транзакциях для записи в журнал транзакций.
СУБД ORACLE Программные компоненты в составе СУБД Oracle Клиент Клиентом СУБД Oracle является любое программное обеспечение, взаимодействующее с сервером Oracle посредством выдачи запросов на языке SQL (например, ПО SQL*Plus), передаваемых по сети с помощью ПО SQL*Net. Клиентское ПО состоит из набора программных файлов (для платформы Windows 9x/NT это файлы с расширением ЕХЕ и DLL).
СУБД ORACLE Программные компоненты в составе СУБД Oracle ПО промежуточного уровня ПО SQL*Net обеспечивает прозрачный, не зависящий от типа протокола транспортного уровня, доступ клиентской части СУБД к услугам транспортного протокола, установленного на ВУ, а также возможность предоставлять серверную часть СУБД Oracle для совместного использования с рабочих станций с установленной клиентской частью. На сервере ПО SQL*Net представлено прослушивающим сеть процессом LISTENER, а на клиенте набором файлов SQL*NET Client. В состав SQL*Net входят также адаптеры протоколов транспортного уровня, обеспечивающие упаковку запросов в сообщения соответствующего протокола транспортного уровня.
СУБД ORACLE Для взаимодействия клиента и сервера используется спецификация для прозрачного именования ресурсов (Transparent Network Specification TNS) сети на основе СУБД Oracle. TNS-идентификация ресурсов сети обеспечивается либо с помощью конфигурационных файлов SQL*Net, либо с помощью сервера имен (Oracle Names Server). Клиент знает только TNS-имя сервера Oracle, за которым скрыто физическое местоположение сервера и процесса Listener на компьютере-сервере в терминах того или иного транспортного протокола.
СУБД ORACLE Пример: ORAMX. world = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP_COM. world) (PROTOCOL = TCP) (Host = ) (Port =1526) ) ) (CONNECT_DATA = (SID = TSU) (GLOBAL_NAME = ORAMX.world) ) )
СУБД ORACLE Логическая структура БД Oracle На верхнем уровне логической организации БД Oracle находится пространство таблиц. Пространство таблиц (Tablespace) служит базовым пространством для размещения объектов схемы (таблиц и т. д.). Пространство таблиц может находиться либо в доступном режиме (online), либо в автономном (offline). Рекомендуется создавать отдельные пространства таблиц для каждого приложения, работающего с СУБД (это обеспечивает определенный уровень независимости приложений друг от друга), а также для целей повышения производительности, так как если файлы разных пространств таблиц размещаются на разных физических дисках, то доступ к информации осуществляется быстрее.
СУБД ORACLE Логическая структура БД Oracle Каждый создаваемый в БД объект (таблица, индекс, хранимая процедура) принадлежит определенной схеме. Схема неявно создается при регистрации пользователя и выполняет функции контейнера для объектов, создаваемых пользователем. При регистрации пользователя указывается, в границах какого пространства таблиц будут создаваться объекты его схемы. Схему можно сравнить с каталогом файловой системы.
СУБД ORACLE Логическая структура БД Oracle К объектам схемы (Schema Objects) относятся: Таблицы (Tables) основная единица хранения данных в Oracle. Данные хранятся в записях или строках. Все строки таблицы имеют одинаковый формат, определяющийся при создании таблицы. Представления (Views) задаваемый пользователем вид данных. Представляет собой хранимый запрос к одной и более таблицам. С видом, в общем случае, можно работать как с обычной таблицей, т. е. выполнять операции select, insert, update и т. п. При этом изменения в виде приводят к изменениям со связанными таблицами.
СУБД ORACLE Логическая структура БД Oracle К объектам схемы (Schema Objects) относятся: Индексы (Indexes) служебные структуры, которые используются для оптимизации работы системы по обработке запросов. Создаются неявно при определении полей таблиц как ключевых или явно. Все изменения в таблицах мгновенно отражаются в индексах, этот процесс прозрачен для пользователей. Кластеры (Clusters) структуры для оптимизации доступа к нескольким связанным таблицам, часто использующимся совместно в запросах.
СУБД ORACLE Логическая структура БД Oracle К объектам схемы (Schema Objects) относятся: Последовательности (Sequences) - для автоматической генерации значений ключевых полей. Хранимые процедуры (Stored Procedures). Пакеты (Packages), Триггеры (Triggers) - программные элементы БД, обеспечивающие обработку данных на сервере.
СУБД ORACLE Логическая структура БД Oracle К объектам схемы (Schema Objects) относятся: Синонимы (Synonyms) альтернативные названия таблиц, видов, последовательностей и программных объектов для обеспечения прозрачного управляемого доступа к объектам различных схем (ср. Объекты типа Синоним в NDS). Связи с БД (Database Links) описывают пути к другим БД, используются для выполнения распределенных транзакций.
СУБД ORACLE Дополнительными объектами схемы являются сегменты отката (Rollback Segments) транзакций. Сегменты отката используются для временного хранения старых значений данных, обновляемых транзакцией, включающей операции удаления или обновления строк. Если пользователь отменяет транзакцию, то Oracle считывает присвоенный транзакции сегмент отката и возвращает измененные транзакцией строки в исходное состояние. Сегменты отката могут храниться как в обычном пространстве таблиц, так и в специально выделенном для этих целей пространстве.
СУБД ORACLE Архитектура СУБД Oracle Управляющие файлы Файлы журналовФайлы данных Серверные процессы Процессы пользователей Разделяемый пул Кэш буферов БД Буфер журналов SGA LGWR DBWR PMON SMONSNPnLCKnRECOSnnnDnnn Pnnn CKPT ARCH
СУБД ORACLE Физическая структура БД Oracle СУБД Oracle не использует напрямую дисковое пространство для хранения данных. Вместо этого система использует файлы, внутри которых и размещаются все данные. Oracle использует несколько типов файлов для хранения собственно данных и служебной информации: Файлы данных (Data Files). В таких файлах размешаются пространства таблиц (пространство таблиц размешается в одном и более файлах). По мере надобности пространству таблиц могут быть выделены (в том числе и автоматически) дополнительные файлы на диске. Однако изменить размер уже существующего файла невозможно.
СУБД ORACLE Физическая структура БД Oracle Управляющие файлы (Control Files) - служат для хранения информации о физической структуре БД (имя БД. имена и расположение файлов данных и журнальных файлов). Все изменения в физической структуре (например, добавление нового пространства таблиц и связанного с ним файла) автоматически отражаются в управляющем файле. Журнальные файлы (Redo Log Files) - служат для хранения информации о происходящих в системе изменениях (транзакциях). Допускается создание зеркальных журнальных файлов.
СУБД ORACLE Файлы оперативного журнала Журнальный файл 1 Журнальный файл 2 Журнальный файл 3 Файл А Файл Б Группа 1 Файл А Файл Б Группа 2 Файл А Файл Б Группа 3 Диск 1 Диск 2
СУБД ORACLE Физическая структура БД Oracle Пространство таблиц, размещаемое в одном и более файлах данных, хранит объекты схемы в блоках данных (Data Blocks). Несколько подряд идущих блоков объединяются в отрезки (Extents), которые используются для резервирования места в пространстве таблиц под определенный объект схемы (с возможностью увеличения занимаемого объема путем выделения новых отрезков для хранения объектов схемы). Все отрезки некоторого объекта объединяются в сегмент хранения объекта (Object Storage Segment). Размер сегмента динамически меняется по мере надобности и управляется параметрами инициализации сегмента при создании объекта.
СУБД ORACLE Архитектура внешней памяти Сегмент данных отката индекса временный кластера кэша выделенныйсвободный Экстент База данных Табличное пространство Блок БД Блок ФС Файл Логический диск Экземпляр Уровень ОС Уровень БД
СУБД ORACLE Физическая структура БД Oracle При создании элементов логической структуры БД можно явно управлять параметрами физической организации БД. Например, при создании объекта Таблица можно указать: пространство таблиц для размещения таблицы; начальный размер сегмента хранения таблицы: размер отрезков (в блоках данных), выделяемых при увеличении размеров таблицы; максимальное количество отрезков в сегменте хранения.
СУБД ORACLE Запуск БД с обычном режиме Запуск БД Oracle в обычном режиме выполняется в три этапа: 1.Запуск экземпляра БД. В процессе запуска экземпляра Oracle основной процесс читает файл параметров ora%SID%.ORA (SID - значение системного идентификатора экземпляра БД). Далее. на основе значений параметров происходит выделение места под SGA и выполняется запуск теневых процессов.
СУБД ORACLE Запуск БД с обычном режиме 2Монтирование БД - это процесс связывания запушенного экземпляра с конкретной БД. После выполнения монтирования доступ к БД уже возможен, но только пользователю с правами администратора (с ролью DBA). В процессе монтирования экземпляр БД открывает указанный в файле параметров файл управления (параметр СОМ 1 ROL_FILES). На основе информации в этом файле выполняется проверка файлов данных. Затем открываются журнальные файлы, и, если необходимо, выполняется откат или обратное восстановление транзакций.
СУБД ORACLE Запуск БД с обычном режиме 3. Открытие БД. Заключается в предоставлении БД для совместного использования. Открываются для доступа файлы данных, точнее становятся доступными (on-line) пространства таблиц, размешенные в этих файлах, и журнальные файлы. Табличные пространства, файлы которых недоступны, остаются неактивными (off-line). Чтобы к БД могли обращаться клиенты с других ВУ, необходимо также, чтобы был запущен процесс Listener.
СУБД ORACLE Запуск БД NOMOUNT MOUNT OPEN Экземпляр Запущен. Открыт управляющий Файл. Все файлы открыты, пользователи могут работать. STARTUP Для запуска БД в обычном режиме необходимо запустить утилиту Server Manager, подключиться как пользователь INTERNAL и выполнить команду STARTUP.
СУБД ORACLE Завершение работы с БД 1.Закрытие БД сброс всех изменений в кэш-памяти на диск, а также закрытие всех активных соединений с сервером и закрытие активных табличных пространств. 2.Размонтирование БД - предполагает закрытие файлов управления. 3.Выгрузка из памяти экземпляра БД- заключается в освобождении памяти от SGA и теневых процессов и последующей выгрузке основного процесса. Для завершения работы БД в обычном режиме необходимо запустить утилиту Server Manager, подключиться как пользователь INTERNAL и выполнить команду SHUTDOWN.
СУБД ORACLE ABORT IMMEDIATE NORMAL SHUTDOWN Запрещены новые соединения. Ожидание окончания работы пользователей. Не требуется восстановление экземпляра. Выполняется по умолчанию. Откат незавершенных транзакций. Закрытие и размонтирование БД. Не требует восстановление экземпляра. Нет отката транзакций. Нет закрытия и размонтирования БД. Останавливает экземпляр. Требуется восстановление экземпляра (выполняется автоматически).
СУБД ORACLE ВОПРОСЫ?