Mandatory background processes are present in all typical database configurations.
These processes run by default in a read/write database instance started with
a minimally configured initialization parameter file. A read-only database instance
disables some of these processes.
This section describes the following mandatory background processes:
• Process Monitor Process (PMON) Group
• Process Manager (PMAN)
• Listener Registration Process (LREG)
• System Monitor Process (SMON)
• Database Writer Process (DBW)
• Log Writer Process (LGWR)
• Checkpoint Process (CKPT)
• Manageability Monitor Processes (MMON and MMNL)
• Recoverer Process (RECO)
Process Monitor Process (PMON) Group
The PMON group includes PMON, Cleanup Main Process (CLMN), and Cleanup
Helper Processes (CLnn). These processes are responsible for the monitoring and
cleanup of other processes.
The PMON group oversees cleanup of the buffer cache and the release of resources
used by a client process. For example, the PMON group is responsible for resetting
the status of the active transaction table, releasing locks that are no longer required,
and removing the process ID of terminated processes from the list of active processes.
The database must ensure that resources held by terminated processes are released
so they are usable by other processes. Otherwise, process may end up blocked or
stuck in contention.
Process Monitor Process (PMON)
The process monitor (PMON) detects the termination of other background
processes. If a server or dispatcher process terminates abnormally, then the PMON
group is responsible for performing process recovery. Process termination can have
multiple causes, including operating system kill commands or ALTER SYSTEM KILL
SESSION statements.
Cleanup Main Process (CLMN)
PMON delegates cleanup work to the cleanup main process (CLMN). The task of
detecting abnormal termination remains with PMON.
CLMN periodically performs cleanup of terminated processes, terminated sessions,
transactions, network connections, idle sessions, detached transactions, and detached
network connections that have exceeded their idle timeout.
Cleanup Helper Processes (CLnn)
CLMN delegates cleanup work to the CLnn helper processes.
The CLnn processes assist in the cleanup of terminated processes and sessions. The
number of helper processes is proportional to the amount of cleanup work to be done
and the current efficiency of cleanup.
A cleanup process can become blocked, which prevents it from proceeding to clean up
other processes. Also, if multiple processes require cleanup, then cleanup time can be
significant. For these reasons, Oracle Database can use multiple helper processes in
parallel to perform cleanup, thus alleviating slow performance.
The V$CLEANUP_PROCESS and V$DEAD_CLEANUP views contain metadata about CLMN
cleanup. The V$CLEANUP_PROCESS view contains one row for every cleanup process.
For example, if V$CLEANUP_PROCESS.STATE is BUSY, then the process is currently
engaged in cleanup.