Во время запуска сервера на хост-машине (компьютере сервера) создается набор процессов операционной системы. По мере того как пользователи соединяются с экземпляром, для управления их работой создаются дополнительные процессы. Ниже рассказано о том, какие процессы операционной системы работают в составе экземпляра базы данных Oracle.
Относительно структуры все процессы в Oracle делятся на:
- Серверные фоновые процессы - каждый экземпляр базы данных Oracle содержит набор серверных фоновых процессов. Фоновый процесс (background process) - это серверный процесс, который выполняет в системе специальную функцию.
- Процесс для записи в базу данных (DBWR) - модификация информации базы данных (например, вводится, обновляется или удаляется строка таблицы), Oracle не просто изменяет данные в файле данных.
- Процесс записи в журнал (LGWR) - процесс записи в журнал (LGWR - log writer process) регистрирует информацию об изменениях, внесенных всеми завершенными транзакциями.
- Процесс архивации (ARCH) - процесс архивации (ARCH - archiver process) осуществляет автоматическое резервное копирование файлов журнала транзакций после того, как процесс LGWR заполнит их элементами повтора.
Кроме того, Oracle создает набор фоновых процессов для экземпляра. Эти процессы взаимодействуют друг с другом и с операционной системой. Они управляют структурами памяти, записывают информацию на диск в асинхронном режиме ввода/вывода и выполняют общесистемные служебные действия.
В экземпляре Oracle есть три класса процессов.
- Серверные процессы. Они выполняют запросы клиентов. Мы уже затрагивали тему выделенных и разделяемых серверов. И те, и другие относятся к серверным про цессам.
- Фоновые процессы. Это процессы, которые начинают выполняться при запуске экземпляра и решают различные задачи поддержки базы данных, такие как запись блоков на диск, поддержка активного журнала повторного выполнения, удаление прекративших работу процессов и т.д.
- Подчиненные процессы. Они подобны фоновым процессам, но выполняют, кроме того, действия от имени фонового или серверного процесса.
Состав работающих в текущий момент фоновых процессов зависит от используемых функциональных возможностей базы данных.
Наиболее общие процессы следующие:
- Системный монитор (System monitor SMON); выполняет восстановление после отказа экземпляра при старте экземпляра.
- Монитор процессов (Process monitor PMON); выполняет очистку после аварийного завершения пользовательского процесса.
- Процесс записи в БД (Database writer DBWn); пишет модифицированные блоки из кэша буферов БД в файлы на диск.
- Процесс контрольной точки (Checkpoint CKPT); сигнализирует DBWn о контрольной точке и изменяет все файлы данных и управляющие файлы, внося в них информацию о самой последней контрольной точке.
- Процесс записи в журнал (Log writer LGWR); пишет журнальные записи на диск.
- Архиватор (Archiver ARCn); копирует файлы оперативного журнала в архив после заполнения оперативных журнальных файлов или после выполнения переключения журнала.