Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Le / Структуры программных средств Oracle.doc
Скачиваний:
49
Добавлен:
16.04.2013
Размер:
128.51 Кб
Скачать

Архитектура процессов, специфичная для Oracle Выделенные серверы

Простейшей архитектурой процессов, применяемой в Oracleдля поддержки соединений клиентов, является архитектура выделенных серверов(dedicated server architecture).Она представлена на рис. 4.

В конфигурации выделенных серверов Oracleзапускает выделенный серверный процесс переднего плана(foreground server process)для каждого клиента, соединяющегося с экземпляром. Серверный процесс переднего плана некоторого клиента выполняет операции с базой данных только для этого клиента. Например, когда пользователь направляет серверу операторUPDATE, серверный процесс переднего плана этого пользователя просматривает память сервера в поисках нужных блоков данных; если в памяти их нет, серверный процесс считывает блоки с диска в память сервера, а затем обновляет их в памяти.

Конфигурация выделенных серверов не очень эффективна при большом числе пользователей. Дело в том, что каждый процесс выделенного сервера функционирует только для сеанса связи одного пользователя. Если процесс выделенного сервера большей частью бездействует (например, когда продавец разговаривает с заказчиком и заполняет бланк), то неактивный серверный процесс потребляет ресурсы сервера, которые ему совсем не нужны. Если учесть, что для поддержки сотен и даже тысяч соединений пользователей требуется столько же процессов, то можно понять, что ресурсы сервера очень быстро истощатся. Соединения через выделенные серверы обычно устанавливаются для выполнения интенсивных пакетных операций; при этом серверные процессы загружены большую часть времени. Такие соединения также требуются для выполнения некоторых админи­стративных задач (например, для запуска и остановки сервера или для восстановления базы данных). Однако в большинстве систем типа клиент/сервер применяется конфигурация многопоточного сервера.

Многопоточные серверы

Для поддержки соединений клиентов в Oracleчаще всего применяется архитектура многопоточного сервера(multithreaded server architecture),которая показана на рис. 5.

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

  • Процесс диспетчера (dispatcher process)получает запросы клиентов и помещает их в очередь запросов (requestqueue) сервера, а также возвращает результаты запроса соответствующему клиенту. Экземпляр базы данныхOracleдолжен запускать по меньшей мере один процесс диспетчера для каждого сетевого протокола, который планируется поддерживать (напримерTCP/IP,IPX/SPX,DecNet).

  • Процесс разделяемого сервера (shared server process)выполняет запросы, находящиеся в очереди запросов сервера, и возвращает результаты в очередь ответов(response queue).ЭкземплярOracleможет запускать один или несколько процессов разделяемого сервера. После запуска экземпляраOracleавтоматически регулирует число разделяемых серверов в зависимости от изменения объема транзакций; когда в очереди ожидает обработки много запросов,Oracleзапускает дополнительные разделяемые серверы, чтобы сбалансировать нагрузку на систему; и, наоборот, когда запросы удаляются из очереди,Oracleможет остановить ненужные разделяемые серверы, чтобы уменьшить расход ресурсов хост-машины.

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

Соседние файлы в папке Le