Архитектура сервера базы данных. Структуры памяти. Системная глобальная область. Кэш буферов базы данных (Database Buffer Cache). Буфер оперативного журнала (Redo Log Buffer), страница 5

Рассмотрим пример обработки SQL-запроса, поступившего от клиента, многопотоковым сервером (Рисунок 6).

Рисунок 6 Обработка запроса многопотоковым сервером

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

2.  Процесс прослушивания на сервере базы данных ждет запроса на соединение от процесса пользователя, после чего определяет, можно ли выполнить соединение через разделяемый сервер.

·  Если пользовательский процесс может использовать разделяемый сервер, процесс прослушивания выдает ему адрес диспетчерского процесса

·  Если пользовательский процесс требует выделенного сервера или разделяемый серверный процесс не может быть назначен, процесс прослушивания создает выделенный серверный процесс и соединяет с ним процесс пользователя.

3.  Пользователь выполняет SQL-команду, например, обновляет строку в таблице.

4.  Процесс-диспетчер, назначенный для этого пользовательского процесса, помещает требование в очередь запросов, которая находится в SGA и используется всеми процессами-диспетчерами.

5.  Разделяемый серверный процесс забирает запрос из очереди (запросы обрабатываются в порядке поступления) и выполняет его:

·  Если в разделяемом пуле содержится разделяемая область SQL для такого SQL-утверждения, серверный процесс использует существующую разделяемую область SQL для выполнения клиентского запроса

  • Если разделяемый пул не содержит разделяемую область SQL для такого SQL-утверждения, в разделяемом пуле выделяется новая разделяемая область SQL для этого запроса.
  • И в том, и в другом случае создается частная область SQL (частично в PGA, частично в SGA) и разделяемый серверный процесс проверяет привилегии пользователя на требуемые данные.
  • Разделяемый серверный процесс извлекает блоки данных из файлов данных, или использует блоки данных, если они уже хранятся в кэше буферов базы данных в SGA.
  • Разделяемый серверный процесс выполняет SQL-команду, изменяя данные, хранящиеся в SGA. Измененные данные записываются на диск, когда процесс записи в базу данных (DBWR) определит, что необходимо зафиксировать изменения. Процесс записи в журнал (LGWR) фиксирует транзакцию в файле журнала, если от пользователя поступил запрос на подтверждение транзакции.

6.  После того, как разделяемый серверный процесс (Snnn) завершит выполнение команды SQL, он помещает ответ в очередь ответов того диспетчера, который  отправил запрос. Каждый процесс-диспетчер (Dnnn) имеет в SGA свою собственную очередь ответов.

7.  Процесс-диспетчер (Dnnn) проверяет очередь ответов.

8.  Процесс-диспетчер (Dnnn) отправляет ответ тому пользовательскому процессу, который делал запрос.

Запуск и остановка базы данных

База данных Oracle открывается в три этапа:

§  Формирование экземпляра Oracle (предустановочная стадия - NOMOUNT).

На этой стадии считывается файл параметров, запускаются фоновые процессы, и выделяется системная глобальная область SGA.

§  Установка базы данных экземпляром (установочная стадия - MOUNT).

На этой стадии открыт доступ к управляющему файлу, поэтому возможна модификация содержащейся в нем информации.

§  Открытие базы данных (стадия открытия - OPEN).

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

Запуск базы данных возможен в любом из трех режимов:

§  NOMOUNT – используется только для создания базы данных.

§  MOUNT – необходим, если выполняется восстановление экземпляра, или модифицируется конфигурация файлов данных или журнальных файлов.

§  OPEN – нормальное рабочее состояние базы данных. В этом режиме обеспечен доступ всех пользователей базы данных.

Остановить (SHUTDOWN) базу данных можно из любого режима базы данных, однако, переход в предыдущий режим невозможен. Т.е. можно перейти из состояния OPEN в состояние SHUTDOWN, но нельзя перейти в состояние MOUNT.

Остановка базы данных возможна в трех режимах:

§  NORMAL – режим ожидания нормального завершения сеансов пользователей до остановки экземпляра. Новые соединения запрещены.

§  IMMEDIATE – режим остановки с принудительным завершением сеансов пользователей.

§  ABORT – немедленная остановка экземпляра. При следующем запуске потребуется восстановление экземпляра, которое происходит автоматически.

Примеры клиентских приложений

Прикладные программы, предназначенные для работы с базами данных, служат для разработки пользовательских приложений, эксплуатации и администрирования баз данных. Клиенты реляционных СУБД обращаются к базе данных прямо или косвенно с помощью команд SQL. Клиентские приложения можно условно разделить на три группы:

§  Пакеты автоматизированного проектирования программ (CASE – средства):

§  Designer/2000 – набор вспомогательных средств для анализа, проектирования и создания приложений Oracle.

§  Средства доступа к данным, такие как программы просмотра баз данных, генераторы отчетов:

§  SQL*Plus – инструмент Oracle, который распознает и передает команды SQL и PL/SQL серверу. Имеет собственный набор команд;

§  Procedure Builder – инструмент для создания, выполнения и отладки программ PL/SQL, используемых в формах, отчетах или на сервере Oracle;

§  Developer/2000 – набор инструментов для разработчиков приложений. Позволяет создавать экранные интерактивные формы, отчеты, диаграммы.

§  Средства администрирования баз данных:

§  Server Manager – инструмент для администрирования баз данных. Имеет графический интерфейс и интерфейс командной строки. До тех пор, пока база данных не открыта, доступ к ней возможен только со стороны администратора базы данных и только через Server Manager;

§  Database Configuration Assistant – графический ассистент, позволяющий достаточно просто создать или удалить базу данных;

§  Административные утилиты, например утилиты резервного копирования и восстановления;

§  Performance Monitor - монитор производительности баз данных.

Литература

1.  Чертков Б. З. Технологии клиент-сервер [Электронный ресурс]: применение в компьютеризации управления промышленными предприятиями / Б. З. Чертков, Н. В. Сапцин. – Самара. – Режим доступа: http://www.uic.ssu.samara.ru/~samvu/klient/index.htm

2.  Зеленков Ю.А. Введение в базы данных [Электронный ресурс]. – Ярославль, 1997. – Режим доступа: http://www.vsma.ac.ru/~pharm/library/books/db/toc.html

3.  Вильям Дж. Пэйдж Использование Oracle8/8i: пер. с англ. – М.: Издательский дом "Вильямс", 1999.