-
SMON - System Monitor process
recovers after instance failure and monitors temporary segments and
extents. SMON in a non-failed instance can also perform failed
instance recovery for other failed RAC instances.
-
PMON - Process Monitor process
recovers failed process resources. If MTS is being utilized, PMON
monitors and restarts any failed dispatcher or server processes. In
RAC, PMON’s role as service registration agent is particularly
important.
-
DBWR - Database Writer or Dirty
Buffer Writer process is responsible for writing dirty buffers from
the database block cache to the database data files. Generally, DBWR
only writes blocks back to the datfiles on commit, or when the cache
is full and space has to be made for more blocks. The possible
multiple DBWR processes in RAC must be coordinated through the locking
and global cache processes to ensure efficient processing is
accomplished.
-
LGWR - Log Writer process is
responsible for writing the log buffers out to the redo logs. In RAC,
each RAC instance has its own LGWR process that maintains that
instance’s thread of redo logs.
-
ARCH - (Optional) Archive process
writes filled redo logs to the archive log location(s). In RAC, the
various ARCH processes can be utilized to ensure that copies of the
archived redo logs for each instance are available to the other
instances in the RAC setup should they be needed for recovery.
-
CKPT - Checkpoint process writes
checkpoint information to control files and datafile headers.
-
Pnnn - (Optional) Parallel Query
Slaves are started and stopped as needed to participate in parallel
query operations.
-
CQJ0 - Job queue controller process
wakes up periodically and checks the job log. If a job is due, it
spawns Jnnnn processes to handle jobs.
-
Jnnn - (Optional) Job processes
used by the Oracle9i job queues to process internal Oracle9i jobs. The
CQJ0 process controls it automatically.
-
QMN - (Optional) Advanced Queuing
process is used to control the advanced queuing jobs.
-
Snnn - (Optional) Pre-spawned
shared server processes are used by the multi-threaded server (MTS)
process to handle connection requests from users, and act as
connection pools for user processes. These user processes also handle
disk reads from database datafiles into the database block buffers.
-
Dnnnn - (Optional) Dispatcher
process for MTS. It accepts connection requests and portions them out
to the pre-spawned server processes.
-
Dedicated Server - Dedicated server
processes are used when MTS is not used. Each user process gets a
dedicated connection to the database. These user processes also handle
disk reads from database datafiles into the database block buffers.
-
LISTENER - The LISTENER process
listens for connection requests on a specified port and passes these
requests to either a distributor process if MTS is configured, or to a
dedicated process if MTS is not used. The LISTENER process is
responsible for load balance and failover in case a RAC instance fails
or is overloaded.
-
CALLOUT Listener - Used by internal
processes to make calls to externally stored procedures.
-
RECO - The reco process performs
recovery of failed distributed transactions and is only present if the
distributed_transactions parameter is set greater than 0. RAC
instances do not count as distributed to their own database.