When starting to learn Oracle Database, many beginners get confused by the term “background process.” In this article, we’ll clearly explain what background processes are, why they’re needed, and the different types that exist. We’ll also use text-based diagrams to make it easier to understand.
What Are Background Processes?
Oracle Database performs not only SQL processing for user queries, but also many behind-the-scenes tasks. These tasks are handled by what are known as background processes.
Background processes automatically start when the database instance is started and play key roles such as:
- Writing memory data to disk
- Synchronizing data files and control files
- Supporting recovery and failure handling
Text Diagram: Oracle Instance and Background Processes
Below is a diagram illustrating the structure of an Oracle instance and how background processes interact with it.
[Structure of Oracle Instance]
+----------------------------+
| SGA (Shared Memory) |
| +----------------------+ |
| | DB Buffer Cache | ← Written by DBWR
| | REDO Log Buffer | ← Written by LGWR
| +----------------------+ |
+----------------------------+
↑ ↑
| |
+----+--------+----+
| Background Processes |
+------------------------+
| DBWR (Database Writer) |
| LGWR (Log Writer) |
| CKPT (Checkpoint) |
| SMON (System Monitor) |
| PMON (Process Monitor) |
| ARCn (Archiver) |
| MMON (Manageability Monitor)|
| CJQ0 (Job Queue Coordinator)|
| RECO (Recoverer) |
| MMNL (Memory Monitor Light)|
| RVWR (Recovery Writer) |
+------------------------+
Core Background Processes (Basic)
1. DBWR (Database Writer)
Writes modified data blocks from the DB buffer cache in the SGA to data files.
It writes in bulk to optimize disk I/O.
2. LGWR (Log Writer)
Writes redo log entries (changes made by transactions) from the REDO log buffer to disk.
Always triggered at COMMIT.
3. CKPT (Checkpoint)
Triggers checkpoint processing and updates the SCN in data files and control files.
DBWR actually performs the write; CKPT signals when to do so.
4. SMON (System Monitor)
Handles instance recovery when the database crashes.
Also performs maintenance tasks like cleaning up temporary segments.
5. PMON (Process Monitor)
Cleans up resources when a user process terminates abnormally.
Also monitors communication with the listener.
6. ARCn (Archiver)
Used in ARCHIVELOG mode to copy online redo log files to archive destinations.
Multiple ARCn processes (e.g., ARC0, ARC1) may run concurrently.
Additional Important Background Processes (Advanced)
7. MMON (Manageability Monitor)
Handles AWR snapshots and statistics collection for automatic performance tuning (ADDM).
Monitors the system and manages metrics.
8. CJQ0 (Job Queue Coordinator)
Manages jobs submitted through DBMS_JOB or DBMS_SCHEDULER.
Starts Jnnn processes as needed to run background jobs.
9. RECO (Recoverer)
Handles recovery of distributed transactions using two-phase commit.
Resolves inconsistencies when communication with remote databases is lost.
10. MMNL (Memory Monitor Light)
A supplementary process to MMON that writes lightweight statistics and alert information from memory to disk.
11. RVWR (Recovery Writer)
Writes flashback logs to the Flash Recovery Area (FRA).
Essential for Flashback Database functionality.
How to View Active Background Processes
You can check currently running background processes using the following SQL:
SELECT name, description
FROM v$bgprocess
WHERE paddr != '00';
Only the processes with PADDR not equal to '00' are active.
Command execution example
SQL> SELECT name, description
2 FROM v$bgprocess
3 WHERE paddr != '00';
NAME DESCRIPTION
----- -------------------------------------------
PMON process cleanup
CLMN process cleanup
PSP0 process spawner 0
VKTM Virtual Keeper of TiMe process
GEN0 generic0
GEN1 generic1
MMAN Memory Manager
SCMN
DIAG diagnosibility process
OFSD Oracle File Server BG
SCMN
DBRM DataBase Resource Manager
VKRM Virtual sKeduler for Resource Manager
SVCB services background monitor
PMAN process manager
DIA0 diagnosibility process 0
DBW0 db writer process 0
LGWR Redo etc.
CKPT checkpoint
SMON System Monitor Process
SMCO Space Manager Process
RECO distributed recovery
W000 space management slave pool
LREG Listener Registration
W001 space management slave pool
PXMN PX Monitor
FENC IOServer fence monitor
MMNL Manageability Monitor Process 2
MMON Manageability Monitor Process
D000 Dispatchers
S000 Shared servers
TMON Transport Monitor
M000 MMON slave class 1
TT00 Redo Transport
TT01 Redo Transport
TT02 Redo Transport
AQPC AQ Process Coord
QM02 QMON MS
Q001 QMON MS
QM03 QMON MS
Q003 QMON MS
CJQ0 Job Queue Coordinator
W002 space management slave pool
P000 Parallel query slave
P001 Parallel query slave
M004 MMON slave class 1
W003 space management slave pool
W004 space management slave pool
M002 MMON slave class 1
M001 MMON slave class 1
M003 MMON slave class 1
Q004 QMON MS
Q005 QMON MS
Q006 QMON MS
Q007 QMON MS
Q008 QMON MS
Q009 QMON MS
Q00A QMON MS
Q00B QMON MS
Q00C QMON MS
Q00D QMON MS
Q00E QMON MS
Q00F QMON MS
Q00G QMON MS
Q00H QMON MS
Q00I QMON MS
Q00J QMON MS
Q00K QMON MS
Q00L QMON MS
Q00M QMON MS
70 rows selected.
Summary: Background Process Knowledge Is Foundational
Oracle background processes are essential for stable operation of the database.
Understanding the roles of these key processes allows you to troubleshoot problems and monitor performance more effectively.
This knowledge is also crucial when analyzing AWR reports or investigating wait events.
[reference]
F Background Processes

コメント