Блог

What is dedicated server in oracle

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

Подобным образом серверные процессы не возвращают результаты выполнения напрямую пользовательскому процессу — вместо этого, они кладут результат выполнения в очередь ответов. Возникает вопрос, как пользовательские запросы попадают в очередь для считывания серверным процессом и как результаты возвращаются пользователям? За это и ответственен диспетчер.

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

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

Диспетчер помещает все запросы в очерель. Эта очередь называется общей очерелью common queue так как её используют все диспетчеры.

Настройка Shared server

Вне зависимости к какому диспетчеру подключен пользовательский процесс все запросы помещаютяс в общую очередь. Все общие серверные процессы просматривают эту очередь.

advantages of vps over shared hosting

Когда запрос помещается в очередь — первый доступный серверный процесс забирает запрос. С точки зрения выполнения запроса происходит обычный цикл разбора-привязки-выполнения, но когда наступает этап выборки данных — серверный процесс не может отправить результат обратно пользовательскому процессу — между ними нет соединения. Вместо этого общий серверный процесс помещает результат выполнения в очередь ответов response queue которая принадлежит тому диспетчеру который получил этот запрос от пользовательского процесса.

Каждый диспетчер просматривает свою очередь ответов, и когда результат готов, диспетчер заберёт его из очереди и отправит соответствующему пользовательскому процессу. На картинке показано как три пользовательских процесса работают в архитектуре общего сервера.

Shared и Dedicated? / Oracle / orangeguadeloupe.info

Пользовательские процессы 1 и 2 подключаются к экземпляру и назначаются диспетчеру 1, а пользовательский процесс 3 соединяется с диспетчером 2. Результатом механизма диспетчеров и очередей является то что любой запрос любого пользовательского процесса может быть выполнен первым доступны общий серверным процессом.

Всплывает вопрос как управляется состояние сессий.

Database Tutorial 68 - Dedicated Server vs Shared Server - Oracle DBA Tutorial

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

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

Область памяти в SGA используемая общими серверными сессиями называется общая пользовательская область UGA user global area и включает в себя всё что хранилось в PGA за исключением состояния стека.

Использование архитектуры Shared Server Architecture

Вот откуда появляется экономия памяти. Oracle может управлять памятью в shared pool-е гораздо эффективнее чем во многих отдельных PGA. Так как архитектура общего сервера является особенностью только сервера, с клиентской стороны не нужна дополнительная настройка кроме создания файлов для Oracle Net sqlnet.

Со стороны сервера настройка требуется только для экземпляра БД. Listener автоматически подхватит конфигурацию shared server с помощью динамической регистрации. Сеанс - это отдельное соединение пользователя с сервером Oracle. Сеанс начинается, когда пользователь авторизуется сервером Oracle и заканчивается, когда пользователь выходит из системы или происходит нестандартное отключение.

DEDICATED SERVER TO SHARED SERVER (MTS) : Mazdik

Возможно существование нескольких одновременных сеансов для отдельного пользователя базы данных, если для входа в систему он использует разные инструменты, приложения или терминалы.

За исключением некоторых специализированных инструментов администрирования базы данных, запуск сеанса требует доступности сервера Oracle. И в этих двух файлах осуществляются настройки: Информатика и выч. Скачать файл. Сервер Oracle может работать: Соединение - это канал связи между пользовательским процессом и серверным процессом. Пользователь может соединиться с сервером Oracle одним из трех способов: В смысле, не с тем, чтобы задать этот параметр.

Я не сразу понял, что его обязательно надо задавать и что имя сервиса в нём должно быть именно то, какой будем использовать. Почему не сразу? Потому что не по базу сравнивал старый и новый сервер, а по файлам инициализации старта.

В общем, если знаешь как — всё просто, а если не знаешь — время теряешь. Как видите, здесь кроме протокола и сервиса ещё два параметра. Они настраивают необходимый уровень нагрузки. Если не знаете, что там указать — просто уберите эти два параметра. Ну что, всё готово?