"СУБД ORACLE. Часть 1".

advertisement
Администрирование
информационных систем
Лекция 5. СУБД ORACLE
СУБД ORACLE
Таблица (отношение) S_CUSTOMER)
ID NAME
Строка (кортеж)
201
202
203
204
Unisports
Simms Atheletics
Delhi Sports
Womansport
Столбец (атрибут)
PHONE
SALES_
REP_ID
55-2066101
81-20101
91-10351
1-206-104-0103
12
14
14
11
СУБД ORACLE
Имя таблицы: S_CUSTOMER
ID
201
202
203
204
SALES_
NAME
PHONE
REP_ID
Unisports
55-2066101
12
Simms Atheletics 81-20101
14
Delhi Sports
91-10351
14
Womansport
1-206-104-0103
11
Главный ключ
Внешний ключ
Имя таблицы: S_EMP
ID
10
11
12
14
LAST_NAME
Havel
Magee
Giljum
Nguyen
Главный ключ
FIRST_NAME
Marta
Colin
Henry
Mai
СУБД 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 = 212.192.96.98)
(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
SMON
PMON
SNPn
LCKn
RECO
Snnn
Dnnn
Pnnn
SGA
Разделяемый
пул
Кэш буферов БД
Буфер
журналов
CKPT
DBWR
ARCH
LGWR
Серверные
процессы
Управляющие файлы
Процессы
пользователей
Файлы данных
Файлы журналов
СУБД ORACLE
Физическая структура БД Oracle
СУБД Oracle не использует напрямую дисковое
пространство для хранения данных. Вместо этого система
использует файлы, внутри которых и размещаются все
данные. Oracle использует несколько типов файлов для
хранения собственно данных и служебной информации:
Файлы данных (Data Files). В таких файлах
размешаются пространства таблиц (пространство таблиц
размешается в одном и более файлах). По мере
надобности пространству таблиц могут быть выделены (в
том числе и автоматически) дополнительные файлы на
диске. Однако изменить размер уже существующего файла
невозможно.
СУБД ORACLE
Физическая структура БД Oracle
Управляющие файлы (Control Files) - служат для
хранения информации о физической структуре БД (имя БД.
имена и расположение файлов данных и журнальных
файлов). Все изменения в физической структуре
(например, добавление нового пространства таблиц и
связанного с ним файла) автоматически отражаются в
управляющем файле.
Журнальные файлы (Redo Log Files) - служат для
хранения информации о происходящих в системе
изменениях
(транзакциях).
Допускается
создание
зеркальных журнальных файлов.
СУБД ORACLE
Файлы оперативного журнала
Журнальный
файл 1
Диск 1
Журнальный
файл 2
Журнальный
файл 3
Группа 1
Группа 2
Группа 3
Файл А
Файл А
Файл А
Файл Б
Файл Б
Файл Б
Диск 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
Запуск БД
OPEN
MOUNT
NOMOUNT
Экземпляр
Запущен.
Все файлы открыты,
пользователи могут
работать.
Открыт
управляющий
Файл.
Для запуска БД в обычном режиме
необходимо запустить утилиту Server
Manager, подключиться как пользователь
INTERNAL и выполнить команду STARTUP.
СУБД ORACLE
Завершение работы с БД
1. Закрытие БД — сброс всех изменений в кэш-памяти
на диск, а также закрытие всех активных соединений
с сервером и закрытие активных табличных
пространств.
2. Размонтирование БД - предполагает закрытие
файлов управления.
3. Выгрузка из памяти экземпляра БД- заключается в
освобождении памяти от SGA и теневых процессов и
последующей выгрузке основного процесса.
Для завершения работы БД в обычном режиме необходимо
запустить утилиту Server Manager, подключиться как
пользователь
INTERNAL
и
выполнить
команду
SHUTDOWN.
СУБД ORACLE
NORMAL
IMMEDIATE
Запрещены новые соединения.
Ожидание окончания работы пользователей.
Не требуется восстановление экземпляра.
Выполняется по умолчанию.
Откат незавершенных транзакций.
Закрытие и размонтирование БД.
Не требует восстановление экземпляра.
ABORT
Нет отката транзакций.
Нет закрытия и размонтирования БД.
Останавливает экземпляр.
Требуется восстановление экземпляра (выполняется автоматически).
СУБД ORACLE
ВОПРОСЫ?
Download