This the full list of Oracle Database Processes definition and purposes
Process Monitor |
PMON |
Responsible for cleaning up after abnormally terminated connections. Responsible for monitoring other server processes and restarting them if necessary Registers the instance with the listener dynamically (dynamic service registration). Restarts failed server processes and dispatcher processes |
System Monitor |
SMON |
Temporary space cleanup Crash recovery apon restart Coalescing free space Recovering transactions active against unavailable files Instance recovery of failed node in OPS (Oracle parallel server) Cleans up OJB$ (Low Level data dictionary) Shrinks rollback segments Offline's rollback segmentsOther processes call the SMON process when required. |
Distributed database recovery |
RECO |
Recovers transactions that are left in a prepared state because of a crash or loss of connection during a two-phase commit. |
Checkpoint process |
CKPT |
The checkpoint process is charged with instructing the database block buffer writers to write the database buffer cache to disk, it then updates the data file headers and control file to indicate when the checkpoint was performed. There is a relationship with checkpoints and recovery time, the more checkpointing the less recovery time is need when a crash occurs.
The ckpt process does not do the checkpoint but assists with the checkpointing process by updating the file headers of the data files.
A checkpointing process involves the following:
|
Database block writer |
DBWn |
Responsible for writing dirty blocks to disk when free space within the database buffer cache is low, it writes the dirty blocks from the buffer cache out to the disk. It uses the LRU (Least Recently Used) algorithm which retains data in the memory based on how long it has been since someone asked for that data. The database buffer cache is flushed to disk
|
Log writer |
LGWR |
Responsible for flushing to disk the contents of the redo log buffer located in the SGA. Both committed and uncommitted changes are written to the redo log buffer. The redo log buffer is flushed to disk before the data blocks are written to disk. The redo log buffer is flushed to disk
|
Archive process |
ARCn |
Used when the database is in archive-mode, it copies the online redo log file to another location when LGWR fills up, these log files would be used to perform media recovery. There can be a maximum of ten archive processes running ARC0-ARC9. The LOG_ARCHIVE_MAX_PROCESSES parameter determines how many archive processes will be started (default is 1). |
Manageability Monitor |
MMON |
Collects statistics to help the database manage itself. The MMON process collects the AWR (automatic workload repository) snapshot information which is used by the ADDM (automatic database diagnostic monitor), also MMON issues alerts when database thresholds are exceeded. |
Manageability Monitor Light |
MMNL |
The process flushes ASH information to disk when the buffer is full, it also captures session history and database metrics. |
Memory Manager |
MMAN |
Uses the the metrics collected to determine the ideal distribution of memory within oracle. It constantly monitors the database and adjusts the memory allocations according to workloads. |
Job Queue Coordination |
CJQ0 |
Used to schedule and run user jobs. It spawns job queue slave processes (J000-J999) which actually run the job. |
Job Queue Process |
J000-J999 |
These processes are what actually run the schedule jobs requested by CJQ0. |
File Mapping Monitor |
FMON |
Maps files to immediate storage layers and physical devices. Results are normally kept in the DBMS_STORAGE_MAP view. Generally the 3rd party LVM (logical volume manager) supplier will supply a driver to map to. |
Recovery Writer |
RVWR |
This process is started when you implement flashback logging, it logs the before image (taken from the flashback buffers) of an oracle block before it is changed, this is written to the flashback log files. |
Change Tracking Writer |
CTWR |
This process tracks any data blocks that have changed which then RMAN can use to speed up backups as it will no longer need to read the entire data file to see what has changed. |
Queue Monitor Coordinator |
QMNC |
Spawns and coordinates queue slave processes. |
Block server process |
BSP |
Used in OPS and keeps each servers SGA in the clusters consistent with each other. |
Lock monitor process |
LMON |
Used in OPS and monitors all instances in a cluster to detect a failure of an instance. |
Lock manager daemon |
LMD |
Used in OPS and controls the global locks and global resources for the block buffer cache in a clustered environment. |
Lock process |
LCKn |
Used in OPS and is the same as the LMD daemon but handles requests for all global resources other than database block buffers |
Dispatcher process |
Dnnn |
Dispatcher processes that are used when using a shared server environment |
Shared Server process |
Snnn |
Shared Server processes that are used when using a shared server environment |
Oracle process spawner |
PSP0 |
Process spawner has the job of creating and managing other Oracle processes. |
Oracle shadow process |
SHAD |
Oracle's shadow process, could not find much on this process |
Streams Advanced Queuing process |
q000 - q??? |
I believe this is something to do with Oracle Streams Advanced Queuing |