Background processes that support Oracle RAC Cache Fusion
What is Cache Fusion? The general term used by Oracle to control the synchronization of SGA across database instances in a RAC cluster.
The following background processes are used to implement it and are started on each instance when the instance starts.
Generally, the processes below communicate via messages on a private network interconnect supporting high speed syncronization of SGAs between the instances.
The idea is avoid writing to disks if at all possible and instead send messages across the private interconnect and use enqueue (locks) and the processes below to do so.
LMSn: Stands for Lock Manager Server. Also commonly called GCS – Global Cache Services. Up to 10 processes.
It’s main purpose is: it sends messages containing the actual blocks requested. Either as current (unchanged) or CR (reconstructed with undo) blocks. Will also store a PI (Past Image) block to avoid disk writes.
Also communicates with LGWR (kicks) when a block that has been requested that has been changed and not yet flushed out of the log buffer memory structure to the redo log files.
Participates in DRM – dynamic resource mastering – changing the master instance of buffer blocks.
LMON: Stands for Lock Monitor. Also referred to as CGS Cluster Group Services
The LMON process monitors instances in a cluster to detect the failure of an instance.
When it detects a failure, it facilitates the recovery of the global locks held by the failed instance. It is also responsible for changing lock statuses and other resources when instances leave or are added to the cluster, and when DRM (Dynamic Resource Mastering) is initiated – LMON coordinates with LMS for DRM.
LMD: Stands for Lock Manager Daemon. Also commonly called GES – Global Enqueue Services
This process manages incoming lock requests on the Buffer Cache blocks. The LMD process also handles deadlock detection and remote enqueue requests.
LCK0: GRD lock manager
This process manages lock requests for non-RAC library cache objects, and Global Resource Directory (GRD) structures (a shared pool structure used for RAC only). In other words, lock requests for everything but: buffer blocks from the SGA-Buffer Cache.
RMSn: RAC management processes include tasks like the creation of resources as nodes are added.
DIAG: RAC instance health monitor
Responsible for monitoring the overall health of a RAC instance, it captures information needed in the processing of instance failures.
The Atomic Controlfile to Memory Service (ACMS) process insures SGA memory updates are updated on all nodes or none.
Remote Slave Monitor (RSMN) performs remote instance tasks for a coordinating process.
The Global Transaction Process supports global XA transactions (transactions that run across more than one database).