Background Processes
π§ Introduction
Oracle Database doesn’t run on magic β it runs on background processes!
These are small helper programs that quietly keep your database alive, healthy, and optimized β doing everything from writing data to disk, to cleaning up after failed sessions.
They are automatically started when the instance starts, and vary depending on the features your database uses.
π§© Why Are Background Processes Important?
Think of your Oracle instance like a restaurant:
- The database is the kitchen
- The SGA is the prep table
- The background processes are the chefs, cleaners, and waiters making it all run smoothly behind the scenes
No background processes = no functioning database.
π§ Types of Background Processes
π΄ 1. Mandatory Background Processes (Always Running)
These are core processes β always present in standard configurations (except read-only databases, where some may be inactive):
- PMON (Process Monitor):
Cleans up after failed user processes, releases memory, and re-registers services with the listener. - PMAN (Process Manager):
Manages shared server processes when using shared server architecture. - LREG (Listener Registration):
Registers the database instance with the Oracle Net Listener. - SMON (System Monitor):
Performs instance recovery after crashes and cleans up temporary segments. - DBWn (Database Writer):
Writes dirty buffers from memory (SGA) to disk. Can spawn multiple writers (e.g., DBW0, DBW1β¦). - CKPT (Checkpoint):
Updates datafile headers and control files with checkpoint info (ensuring recoverability). - LGWR (Log Writer):
Writes redo log entries from memory to online redo log files. Critical for recovery. - MMON (Manageability Monitor):
Gathers AWR (Automatic Workload Repository) stats for performance tuning. - MMNL (Manageability Monitor Lite):
Assists MMON by writing AWR snapshots to disk. - RECO (Recoverer):
Resolves distributed transactions that fail in multi-database setups.
π‘ 2. Optional Background Processes (Feature-Specific)
These start only if the corresponding feature is enabled:
- ARCn (Archiver):
Copies redo logs to archive storage when the database is in ARCHIVELOG mode. - CJQ0 (Job Queue Coordinator):
Manages scheduled jobs (DBMS_SCHEDULER or older job queues). - RVWR (Recovery Writer):
Writes Flashback Database logs to enable database rewind. - FBDA (Flashback Data Archive):
Tracks historical data changes for Flashback Query (Oracle Total Recall). - SMCO (Space Management Coordinator):
Automates space management, including segment shrinking and cleanup.
π’ 3. Worker Processes (Task Executors)
These are helper processes launched to serve others:
- Dnnn (Dispatcher):
Accepts client connection requests in shared server mode. - Snnn (Shared Server):
Handles actual client requests (SQL execution, fetch, etc.) in shared server setups.
π§ͺ Fun Fact:
Some Oracle systems may have over 100 background processes, especially when using RAC, Data Guard, In-Memory, or Multitenant features.
To view all running background processes:
β Query 1: Show Active Background Processes
COLUMN program FORMAT A20
SELECT program
FROM v$process
WHERE background = 1;
β Query 2: Show Background Processes with Session Info
COLUMN pid FORMAT 999
COLUMN program FORMAT A20
COLUMN sid FORMAT 999
COLUMN serial# FORMAT 99999
SELECT p.pid, p.program, s.sid, s.serial#
FROM v$process p
JOIN v$session s ON p.addr = s.paddr
WHERE p.background = 1;
π οΈ DBA Tip of the Day
If your database seems “slow” or “hung,” donβt just guess β check the logs for PMON, LGWR, or SMON activity.
These are often early indicators of resource contention or crashes.
Also, monitoring V$PROCESS
, V$SESSION
, and V$SYSTEM_EVENT
can reveal which background processes are doing the heavy lifting β or getting stuck.