FoxBase!
msgbartop
Блог Oracle разработчика
msgbarbottom
foxbase

22.06.2011 Архитектура процессов

Процесс - это "нить управления", или механизм операционной системы, который выполняет некоторую последовательность шагов. Некоторые операционные системы используют термин "работа" или "задание". Обычно процессу выделяется собственная область оперативной памяти, в которой он выполняется.
В сервере Oracle имеются процессы двух типов: процессы пользователя и процессы Oracle.

Процессы пользователя (клиентские процессы)

Процессы пользователя создаются и поддерживаются для выполнения программного кода прикладной программы (например, программы на языке Рго*С/С++) или инструментов Oracle (например, Enterprise Manager). Процессы пользователя через программный интерфейс управляют также связью с процессом сервера, который описан ниже.

Процессы Oracle

Процессы Oracle вызываются другими процессами для выполнения собственных операций. В следующих разделах приведены процессы Oracle и их конкретные особенности.

Серверные процессы. Серверные процессы создаются Oracle для обработки запросов пользовательских процессов, соединенных с базой данных. Серверный процесс связан с процессом пользователя и взаимодействует с Oracle для выполнения запросов соответствующих процессов пользователя. Например, если пользователь запрашивает данные, которые отсутствуют в буфере базы данных SGA, то связанный с ним серверный процесс считывает блок данных из файлов данных SGA.
Oracle можно сконфигурировать так, чтобы количество процессов пользователя для каждого серверного процесса было разным. В конфигурации выделенного сервера серверный процесс обрабатывает запросы одного процесса пользователя. Конфигурация многопотокового сервера позволяет многим процессам пользователя совместно использовать небольшую часть серверных процессов, сводя к минимуму количество серверных процессов и увеличивая объем доступных ресурсов.
На некоторых системах процессы пользователя и сервера разделены, а на других соединяются в единый процесс. Если система использует разделяемый сервер или если процессы пользователя и сервера выполняются на разных машинах, то они должны быть разделены. Системы клиент-сервер разделяют процессы пользователя и сервера и выполняют их на разных машинах.
Фоновые процессы. Для каждого экземпляра Oracle создает набор фоновых процессов. Фоновые процессы объединяют функции, которые в противном случае обрабатывались бы несколькими программами Oracle для каждого процесса пользователя. Фоновые процессы асинхронно выполняют операции ввода-вывода и осуществляют мониторинг других процессов Oracle, чтобы обеспечить повышение параллелизма для роста производительности и надежности.
Каждый экземпляр Oracle может использовать несколько фоновых процессов. Имена этих процессов - DBWn, LGWR, СКРТ, SMON, PMON, ARCn, RECO, Jnnn, Dnnn, LMS и QMNn.
Процесс записи в базу данных (DBWn). Процесс записи в БД записывает измененные блоки из кеша буфера базы данных в файлы данных. Хотя для большинства систем хватает одного процесса записи в БД (DBW0), можно сконфигурировать дополнительные процессы (DBW1 - DBW9 и DBWa -DBWj), чтобы увеличить производительность записи в системе, где данные меняются очень часто. Параметр инициализации DB_WRlTER_PROCESSES задает количество процессов DBWn.
Поскольку Oracle использует упреждающую запись в журнал, то процессу DBWn не требуется записывать блоки, когда транзакция фиксируется. Процесс DBWn создан для осуществления пакетных записей с высокой эффективностью. Обычно процесс DBWn производит запись, только когда необходимо считать в SGA дополнительные данные, а в базе данных слишком мало свободных буферов. Давно не использовавшиеся данные записываются в файлы данных первыми. DBWn также осуществляет операции записи для других функции, например, для процесса выполнения контрольных точек.
Процесс записи в журнал (LGWR). Процесс записи в журнал сохраняет записи журнала на диске. Журнальные записи генерируются в журнальном буфере SGA, a LGWR пишет записи журнала последовательно в оперативный журнал. Если у БД мультиплексированный журнал, то LGWR пишет записи журнала в группу оперативных файлов.
Процесс выполнения контрольных точек (СКРТ). В определенные моменты времени каждый измененный буфер базы данных SGA записывается в файлы данных с помощью DBWn. Это событие называется контрольной точкойПроцесс СКРТ отвечает за сигнализацию DBWn в контрольных точках и обновление всех файлов данных и контрольных файлов БД для указания последней контрольной точки.
Системный монитор (SMON). Системный монитор осуществляет восстановление, когда экземпляр, в работе которого произошел сбой, запускается снова. Real Application Clusters позволяет процессу SMON для одного экземпляра восстанавливать другие сбойные экземпляры. SMON также очищает временные сегменты, которые больше не используются, и восстанавливает прерванные транзакции, пропущенные во время восстановления из-за ошибок при чтении файла или ошибок автономного режима. Эти транзакции в конце концов восстанавливаются при помощи SMON, когда табличное пространство или файл снова переходят в оперативный режим. SMON также объединяет свободные экстенты в табличных пространствах, управляемых словарем, чтобы сделать свободное пространство непрерывным и облегчить его выделение.
Монитор процессов (PMON).  Монитор процессов осуществляет восстановление процессов при сбое пользовательского процесса. PMON отвечает за очистку кеша и освобождение ресурсов, используемых процессом. PMON также проверяет диспетчерские процессы и процессы сервера и перезапускает их, если они завершились со сбоем.
Процесс ARCn (Archiver, архиватор). Архивный процесс копирует оперативные файлы журнала в архивное хранилище после того, как произошло переключение журналов. Хотя для большинства систем достаточно одного архивного процесса (ARC0), можно создать до 10 процессов ARCn при помощи динамического параметра инициализации LOG_ARCHIVE_MAX_PROCESSES. Если рабочая нагрузка становится слишком большой для текущего числа процессов ARCn, процесс LGWR автоматически запускает еще один процесс ARCn (максимальное количество таких процессов равно десяти). ARCn активен только тогда, когда база данных находится в режиме ARCHIVE LOG и включена автоматическая архивация.
Процесс восстановления (RECO). Процесс восстановления используется для выполнения распределенных транзакций, приостановленных из-за сбоев в системе или в сети, в которой находится распределенная база данных. Через определенные интервалы времени локальный RECO пытается соединиться с удаленными БД и автоматически выполнить фиксацию или откат локальных участков всех "зависших" распределенных транзакций.
Процессы очереди заданий (Jnnn). Процессы очереди заданий используются для пакетной обработки. Процессы очереди заданий управляются динамически. Это позволяет клиентам очереди заданий при необходимости использовать большее количество процессов очереди заданий. Если новые процессы простаивают, используемые ими ресурсы освобождаются.
Диспетчерский процесс (Dnnn). Диспетчеры - это необязательные фоновые процессы, существующие только при использовании конфигурации с разделяемым сервером. Для каждого используемого протокола связи создается по крайней мере один диспетчерский процесс (D000,..., Dnnn). Каждый диспетчерский процесс отвечает за маршрутизацию запросов пользовательских процессов к работающим процессам разделяемого сервера и за возврат ответов соответствующим пользовательским процессам.
Процесс LMS (Lock Manager Server, сервер управления блокировками). Процесс LMS используется в механизме блокировки между экземплярами в Real Application Clusters.
Процесс QMNn (Queue Monitor, монитор очередей). Мониторы очередей - это необязательные фоновые процессы, которые контролируют очереди сообщений для Oracle Advanced Queuing. Можно создать до 10 процессов монитора очередей.

www.foxbase.ru


Смотрите также:



Оставьте свой комментарий

Вы должны быть авторизированны, чтобы оставить комментарий.