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

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

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

Обязательные фоновые процессы

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

Process Monitor Process (PMON)

Process Monitor (PMON) контролирует другие фоновые процессы, а так же выполняет процесс восстановления, когда сервер или диспетчер процессов завершается аварийно. PMON отвечает за очистку кэша буферов базы данных и освобождение используемых ресурсов клиентских процессов. Например, PMON сбрасывает статус активной транзакционной таблицы, освобождает блокировки, которые больше не требуются, и удаляет идентификатор процесса из списка активных процессов.

PMON также регистрирует сведения об экземпляре и диспетчере процессов в Oracle Net Listener. Когда экземпляр запускается, PMON пытается определить работоспособность Listener. Если Listener работает, то PMON передает ему соответствующие параметры. Если же он не запущен, то PMON будет периодически время от времени устанавливать с ним контакт.

System Monitor Process (SMON)

Процесс system monitor (SMON) отвечает за множество обязанностей очистки ресурсов на уровне системы. Обязанности, назначенные на SMON, включают в себя:

  • Выполнение восстановления экземпляра, при его запуске, в случае необходимости. В Oracle RAC процесс SMON одного из экземпляров базы данных может выполнять восстановление для другого сбойного экземпляра.
  • Восстановление прерванных транзакций, которые были пропущены во время восстановления экземпляра из недоступности файла или табличного пространства. SMON восстановит транзакции, как только табличное пространство или файл будут доступны.
  • Очистка неиспользованных временных сегментов. Например, База данных Oracle выделяет экстенты, создавая индекс. Если операция терпит неудачу, то SMON очищает временное пространство.
  • Соединяет смежные свободные экстенты в пределах управляемого словарем табличного пространства.

SMON периодически проводит проверки, чтобы убедиться, что он нужен. Другие процессы могут так же вызвать SMON, если обнаружат потребность в нём.

Database Writer Process (DBWn)

Процесс переписывает изменённое содержимое буферов буферного кэша в файлы данных.  

Грязные буфера пишутся на диск при следующих условиях:

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

Для большинства систем характерен один процесс (DBW0), но для улучшения производительности можно формировать дополнительные процессы (DBWn).

Log Writer Process (LGWR)

Процесс  записывает содержимое буфера журнала повторного выполнения (redo log buffer) в файлы онлайн журнала.

Запись происходит:

  • Когда пользователь зафиксировал транзакцию.
  • Когда онлайн журнал переключился.
  • Каждые три секунды.
  • Когда буфер заполнен на треть или в него записан 1 мб. Данных.
  • Когда процессу DBWn требуется записать изменённые буфера на диск.

Checkpoint Process (CKPT)

Процесс обновляет контрольный файл и заголовки файлов данных информацией контрольной точки и сигнализирует процессу DBWn, чтобы он начал записывать изменённые блоки данных на диск. Информация контрольной точки включает в себя позицию контрольной точки, SCN, местоположение в онлайновом журнале повторного выполнения (redo log) начала восстановления.

Manageability Monitor Processes (MMON and MMNL)

Процесс монитора управляемости (MMON) выполняет много задач, связанных с Automatic Workload Repository (AWR). Например, он сигнализирует, когда метрика превышает пороговое значение. Кроме этого процесс создаёт моментальные снимки и захватывает значения статистик для недавно измененных объектов SQL.

Облегчённый процесс управляемости (MMNL) скидывает статистику, расположенную в буфере Active Session History (ASH) на диск. Информация переписывается, когда ASH буфер полностью заполнен.

Процесс восстановления (RECO)

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

Процесс диспетчера памяти (MMAN)

Процесс выполняет изменение размеров компонентов памяти в экземпляре. Используется функцией автоматической настройки размера области SGA.

Процесс диагностики (DIAG)

Процесс выполняет диагностические дампы, запрашиваемые другими процессами, а так же дампы вызванные прекращением процесса или экземпляра. В Oracle RAC, процесс выполняет глобальные диагностические дампы по просьбе удаленных экземпляров.

Процесс  виртуальный хранитель времени(VKTM)

Процесс  предоставляет время для экземпляра Oracle. Реализует два комплекта времени: время формата настенных часов с использованием секундного интервала и более высокое разрешение времени для интервальных измерений. Сервис таймера VKTM централизует отслеживание времени и разгружает многократные вызовы таймера от других клиентов.

Процесс диспетчера ресурсов базы данных (DBRM)

Устанавливает ресурсные планы и выполняет другие задачи связанные с диспетчером ресурсов базы данных. Если ресурсный план не разрешён, то процесс простаивает.

Процесс источника процессов (PSP0)

Процесс (Process Spawner Process) отвечает за создание и запуск различных фоновых процессов.

Автоматический BMR фоновый процесс (ABMR)

Процесс (Auto BMR Background Process) выполняет координирующие задачи, такие как фильтрация дубликатов при запросах восстановления блоков и выполнение контроля переполнения.

Когда процесс представляет в ABMR запрос на восстановление блока, ABMR динамически порождает подчинённые процессы (BMRn), чтобы выполнить восстановление. ABMR и BMRn, удаляются будучи простаивающими в течение долгого времени.

Необязательные фоновые процессы

Необязательный фоновый процесс – это любой фоновый процесс, не определенный как обязательный. Большинство необязательных фоновых процессов относятся к специфическим задачам или функциям. Например, фоновые процессы, которые поддерживают Oracle Streams Advanced Queuing (AQ) или Oracle Automatic Storage Management (Oracle ASM) доступны только тогда, когда эти функции разрешены.

Процесс архивирования (ARCn)

Процессы archiver (ARCn) копируют оперативные журнальные файлы на автономное запоминающее устройство после того, как было выполнено переключение журнала. Эти процессы могут также собирать транзакционные журнальные данные и передавать их на удалённую резервную базу данных. Процессы ARCn существуют только тогда, когда база данных находится в режиме ARCHIVELOG, и автоматическое архивирование разрешено.

Процессы очереди заданий (CJQ0 или Jnnn)

Данные процессы предназначены для запуска в базе данных Oracle пользовательских заданий. Задание – это определённая пользователем задача, которая может выполняться один или несколько раз. Например, можно использовать задания для планирования длительных обновлений данных в фоновом режиме в заданное время. Если для задания указана дата начала выполнения и интервал времени, то процессы очереди заданий пытаются запустить задание каждый раз, когда заданный интервал времени истекает.

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

Последовательность действий при выполнении заданий выглядит следующим образом:

  • Координатор процессов заданий (CJQ0) автоматически запускается и останавливается по мере необходимости планировщиком Oracle Scheduler. Периодически он отбирает задания, которые должны быть запущены, из системной таблицы JOB$. Выборка заданий осуществляется в соответствии с сортировкой по времени.
  • Далее, координатор  динамически порождает подчинённые процессы очереди заданий (Jnnn).
  • Каждый из подчинённых процессов выполняет одну из задач, которая была назначена ему координатором CJQ0.
  • После завершения задания, подчинённый процесс делает запрос к координатору CJQ0 на наличие для него новых заданий. При отсутствии заданий, процесс входит в состояние сна, из которого он просыпается с определённой периодичностью и снова опрашивает координатор на наличие заданий. Если для процесса в течение заданного интервала не находится новых заданий, то он уничтожается.

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

Процесс архиватора ретроспективных данных (FBDA)

Процесс архивирует хронологические строки отслеживаемых таблиц в Flashback Data Archives. Когда транзакция, выполняющая DML операцию на отслеживаемой таблице, фиксируется, этот процесс сохраняет предтранзакционную копию и metadata изменённых строк в Flashback Data Archive.

Процесс кординатора управления пространством (SMCO)

Процесс SMCO координирует выполнение различных связанных задач по управлению пространством, таких как упреждающее распределение пространства и пространственное восстановление. SMCO динамически порождает подчинённые процессы (Wnnn), чтобы выполнить задачи.

Процесс ASM Cluster File System CSS  (ACFS)

Процесс (ASM Cluster File System CSS Process) отслеживает кластерное членство в CSS (Oracle Cluster Synchronization Services)  и сообщает об происшедших изменениях файловой системе кластера Oracle.  Изменения членства требуются, чтобы поддержать непротиворечивость файловой системы в пределах кластера.