Слайд 2
ВВЕДЕНИЕ
В настоящее время в современном мире электронных технологий
практически невозможно представить компанию (фирму или организацию), в которой
не требуется обработка некоторого объёма информации. Информацию требуется, где–то хранить. Информация может динамически изменяться. Регулярно требуется выборка данных по определённым критериям из всего массива.
Исследование Университета Южной Каролины установило, что общий объем сохраненных данных к 2007 году составил 295 экзабайт (295 миллиардов гигабайтов). Согласно отчету компании IDC, объем информации по всему миру возрастает в 2 раза каждые 2 года и в этом году будет создано 1,8 зеттабайт данных – это несколько быстрее, чем предполагается в законе Мура.
Слайд 3
ЦЕЛЬ И ЗАДАЧИ КУРСА
Цель данного курса состоит в
формировании концептуальных представлений об основных принципах работы с СУБД
ORACLE, о разработке баз данных в СУБД ORACLE, основных средствах и технологиях СУБД ORACLE, возможностях процедурного языка PL/SQL, а также об основных приемах администрирования СУБД ORACLE.
Главной задачей учебного курса является представление студентам фундаментальных понятий, лежащих в основе работы с СУБД ORACLE, и иллюстрация способов реализации основных понятий о базах данных в ORACLE. Отметим, что в данном учебном курсе не ставится задача детального изучения администрирования и разработки базы данных в СУБД ORACLE. Полное описание СУБД ORACLE, администрирование, приемы увеличения производительности и оптимизация должны рассматриваться в отдельных курсах.
Слайд 4
ИСТОРИЯ ORACLE
1977 – Ларри Эллисон, Боб Майнер и
Эд Оутс основали компанию Software Development Laboratories (SDL), предшественницу
Oracle.
1979 – SDL сменила имя на Relational Software, Inc. (RSI) и выпустила Oracle v2. Это была первая коммерческая система управления реляционными базами данных (СУРБД) на основе языка запросов SQL.
1982 – RSI вновь сменила своё имя и стала называться Oracle Systems.
1983 – выпущена версия Oracle 3, переписанная на C и поддерживающая функции COMMIT и ROLLBACK для реализации транзакций.
1984 – выпущена версия Oracle 4.
1985 – выпущена версия Oracle 5, одна из первых СУРБД, работающих в клиент–серверных средах.
1988 – выпущена версия Oracle 6, с поддержкой блокировок на уровне строк и средств «горячего» резервирования. Появляется поддержка встроенного языка PL/SQL в средстве разработки приложений Oracle Forms v3.
Слайд 5
ИСТОРИЯ ORACLE
1992 – выпущена версия Oracle 7, с
поддержкой ссылочной целостности, хранимых процедур и триггеров.
1997 –
выпущена версия Oracle 8 (8.0) Появляется поддержка средств объектно–ориентированной разработки и мультимедийных приложений; партиционирование таблиц. Oracle становится объектно–реляционной СУБД.
2001 – выпущена версия Oracle 9i Release 1 (9.0.1). В версии 9i появляются: средства обработки XML–документов; технология Oracle RAC (Real Application Clusters), как замена Oracle Parallel Server (OPS); механизм создания репликаций Oracle Streams; скроллируемый курсор для программ на C и С++; встроенная в СУБД поддержка OLAP и Data Mining; переименование столбцов и ограничений целостности; поддержка Java 1.3.1 и Unicode 3.1.
2004 – выпущена версия Oracle 10g Release 1 (10.1.0); «g» в названии обозначает «Grid» («сеть»), символизируя поддержку распределенных вычислений (Grid–вычислений).
Слайд 6
ОСНОВНЫЕ ПОНЯТИЯ
База данных – это набор данных. Oracle
позволяет сохранять данные и получать к ним доступ в
соответствии с моделью, называемой реляционной. В связи с этим Oracle называют системой управления реляционными базами данных (РСУБД). Чаще всего под базой данных подразумевают не только физические данные, но также и комбинацию физических объектов, объектов памяти и процессов.
Экземпляром (или сервером) БД называется набор структур памяти и фоновых процессов, обращающихся к группе файлов базы данных. К одной базе данных могут обращаться несколько экземпляров (свойство Real Application Clusters). Экземпляр может смонтировать и открыть только одну базу данных в каждый момент времени.
Слайд 7
ОСНОВНЫЕ ПОНЯТИЯ
Startup (запуск) – это процесс выполнения команды,
необходимой для того, чтобы сделать базу данных ORACLE 11g
доступной для приложений. После завершения процесса запуска, база данных становится в режим OPEN. Затем база данных готова к использованию.
Shutdown (остановка) – это процесс остановки базы данных ORACLE 11g. Когда база данных ORACLE 11g остановлена никто не может получить доступ к информации и к файлам Oracle.
Background process (фоновые процессы) – эти процессы поддерживают доступ к запущенной базе данных ORACLE 11g, играют жизненно важную роль в реализации работы базы данных ORACLE 11g. Различные фоновые процессы рождаются, когда база данных запущена и каждый из них производит небольшое количество заданий до момента остановки базы данных.
Слайд 8
АРХИТЕКТУРА ORACLE
Файлы. Будут рассмотрены пять видов файлов, образующих
базу данных и поддерживающих экземпляр. Это файлы параметров, сообщений,
данных, временных данных и журналов повторного выполнения.
Структуры памяти, в частности системная глобальная область (System Global Area – SGA). Мы рассмотрим взаимодействие SGA, PGA и UGA. Будут также рассмотрены входящие в SGA Java-пул, разделяемый пул и большой пул.
Физические процессы или потоки. Будут описаны три типа процессов, образующих экземпляр: серверные процессы, фоновые процессы и подчиненные процессы.
Слайд 10
ФАЙЛЫ ORACLE
Файлы данных. Собственно данные (в этих файлах
хранятся таблицы, индексы и все остальные сегменты).
Файлы журнала повторного
выполнения. Журналы транзакций.
Управляющие файлы. Определяют местонахождение файлов данных и содержат другую необходимую информацию о состоянии базы данных.
Временные файлы. Используются при сортировке больших объемов данных и для хранения временных объектов.
Файлы паролей. Используются для аутентификации пользователей, выполняющих администрирование удаленно, по сети. Мы не будем их подробно рассматривать.
Слайд 11
ФАЙЛЫ ДАННЫХ
Каждое табличное пространство состоит из одного или
нескольких дисковых файлов, называемых файлами данных. Файл данных может
принадлежать одному и только одному табличному пространству. После создания файлов их размеры можно изменять. При создании новых табличных пространств необходимо создавать и новые файлы данных. После добавления файла данных к табличному пространству его уже нельзя удалить или связать с другим табличным пространством.
Если объекты базы данных сохраняются в нескольких табличных пространствах, можно разделить их на физическом уровне, разместив соответствующие файлы данных на различных дисках. Разделение данных представляет собой важный инструмент планирования и настройки того способа, с помощью которого база данных работает с запросами ввода/вывода
Слайд 12
СВЯЗЬ МЕЖДУ ТАБЛИЧНЫМИ ПРОСТРАНСТВАМИ БД И ФАЙЛАМИ ДАННЫХ
Слайд 13
ЖУРНАЛЫ ПОВТОРА
Oracle поддерживает журналы всех транзакций в базе
данных. Транзакции записываются в файлы, называемые файлами оперативных журналов
повтора. Эти файлы используются для восстановления транзакций базы данных в надлежащем порядке в случае сбоя БД. Сохранение информации журналов повтора является внешним по отношению к файлам данных базы данных.
Файлы журналов повтора также предоставляют потоку Oracle способ записи данных на диск. Когда в базе данных выполняется транзакция, она заносится в буферы журнала повторов, а измененные во время транзакции блоки данных не записываются сразу на диск.
Все базы данных Oracle будут иметь не менее трех файлов журнала повторов. В Oracle запись в файлы журнала повторов производится циклически: после заполнения первого файла идет запись во второй файл, пока он не будет заполнен.
Слайд 14
УПРАВЛЯЮЩИЕ ФАЙЛЫ
Физическая архитектура базы данных в целом поддерживается
ее управляющими файлами. Эти файлы записывают управляющую информацию обо
всех файлах базы данных, поддерживают внутреннюю целостность и руководят операциями восстановления.
Поскольку управляющие файлы имеют огромное значение для базы данных, производится оперативное создание нескольких копий. Эти файлы обычно сохраняются на разных дисках, чтобы свести к минимуму их возможное повреждение при сбое диска. База данных будет создавать и поддерживать управляющие файлы, заданные при ее создании.
Слайд 15
ВРЕМЕННЫЕ ФАЙЛЫ
Временные файлы данных в Oracle — это
специальный тип файлов данных. Сервер Oracle использует временные файлы
для хранения промежуточных результатов сортировки большого объема данных или результирующих множеств, если для них не хватает оперативной памяти.
Постоянные объекты данных, такие как таблицы или индексы, во временных файлах никогда не хранятся, в отличие от содержимого временных таблиц и построенных по ним индексов. Так что создать таблицы приложения во временном файле данных нельзя, а вот хранить в нем данные можно, если использовать временную таблицу.
Слайд 16
СТРУКТУРЫ ПАМЯТИ
SGA, System Global Area — глобальная область
системы. Это большой совместно используемый сегмент памяти, к которому
обращаются все процессы Oracle.
PGA, Process Global Area — глобальная область процесса. Это приватная область памяти процесса или потока, недоступная другим процессам/потокам.
UGA, User Global Area — глобальная область пользователя. Это область памяти, связанная с сеансом. Глобальная область памяти может находиться в SGA либо в PGA. Если сервер работает в режиме MTS, она располагается в области SGA, если в режиме выделенного сервера, — в области PGA.
Слайд 18
ФИЗИЧЕСКИЕ ПРОЦЕССЫ
В экземпляре Oracle есть три класса процессов.
Серверные
процессы. Они выполняют запросы клиентов. Мы уже затрагивали тему
выделенных и разделяемых серверов. И те, и другие относятся к серверным процессам.
Фоновые процессы. Это процессы, которые начинают выполняться при запуске экземпляра и решают различные задачи поддержки базы данных, такие как запись блоков на диск, поддержка активного журнала повторного выполнения, удаление прекративших работу процессов и т.д.
Подчиненные процессы. Они подобны фоновым процессам, но выполняют, корме того, действия от имени фонового или серверного процесса. Мы рассмотрим все эти процессы и постараемся выяснить, какую роль они играют в экземпляре.
Слайд 19
СЕРВЕРНЫЕ ПРОЦЕССЫ
Выделенные и разделяемые серверы решают одну и
ту же задачу: обрабатывают передаваемые им SQL-операторы. При получении
запроса SELECT * FROM EMP именно выделенный/разделяемый сервер Oracle будет разбирать его и помещать в разделяемый пул (или находить соответствующий запрос в разделяемом пуле). Именно этот процесс создает план выполнения запроса. Этот процесс реализует план запроса, находя необходимые данные в буферном кэше или считывая данные в буферный кэш с диска.
Такие серверные процессы можно назвать "рабочими лошадками" СУБД. Часто именно они потребляют основную часть процессорного времени в системе, поскольку выполняют сортировку, суммирование, соединения – в общем, почти все.
Слайд 20
ФОНОВЫЕ ПРОЦЕССЫ
Фоновые процессы выполняют рутинные задачи сопровождения, обеспечивающие
работу СУБД. Есть, например, процесс, автоматически поддерживающий буферный кэш
и при необходимости записывающий блоки данных на диск.
Есть два класса фоновых процессов: предназначенные исключительно для решения конкретных задач (как только что описанные) и решающие множество различных задач. Например, есть фоновый процесс, обеспечивающий работу внутренних очередей заданий в Oracle. Этот процесс контролирует очередь заданий и выполняет находящиеся в ней задания. Во многом он похож на выделенный сервер, но без подключения к клиенту.
Слайд 21
ФОНОВЫЕ ПРОЦЕССЫ
PMON - монитор процессов.
SMON – монитор системы.
RECO
– восстановление распределенной базы данных.
CKPT – обработка контрольной точки.
DBWn
– запись блоков базы данных.
LGWR – запись журнала.
ARCn – архивирование.
BSP – сервер блоков.
LMON – контроль блокировок.
LMD – демон диспетчера блокировок.
LCKn – блокирование.
Слайд 22
ВЗАИМОДЕЙСТВИЕ ФОНОВЫХ ПРОЦЕССОВ
Слайд 24
ПОДЧИНЕННЫЕ ПРОЦЕССЫ ВВОДА/ВЫВОДА
Подчиненные процессы ввода/вывода используются для эмуляции
асинхронного ввода/вывода в системах или на устройствах, которые его
не поддерживают. Например, ленточные устройства (чрезвычайно медленно работающие) не поддерживают асинхронный ввод/вывод. Используя подчиненные процессы ввода/вывода, можно сымитировать для ленточных устройств такой способ работы, который операционная система обычно обеспечивает для дисков.