RAC stands for Real Application Clusters. It allows multiple nodes in a clustered system to mount and open a single database that resides on shared disk storage. Should a single system fail (node), the database service will still be available on the remaining nodes.
Oracle Cluster Registry
Oracle stores details of the cluster configuration, including the names and current status of the database, associated instances, services, and node applications, such as the listener process. The OCR is used by
Oracle Clusterware and is managed by a number of tools, including the Database Configuration
Assistant (DBCA), Enterprise Manager (EM), and the Server Control (SRVCTL) command-line utility.
Oracle Notification Service (ONS)
ONS is used by Oracle Clusterware to propagate messages both within
the RAC cluster and to clients and application-tier systems. ONS uses a publish-and-subscribe method
to generate and deliver event messages to both local and remote consumers.
Fast Application Notification (FAN)
FAN is a mechanism by which RAC notifies other processes about changes in configuration and
service level. FAN is also used to notify applications about service status changes, such as the starting
and stopping of instances or services.
Fast Connection Failover (FCF)
It works with integrated connection pools in application servers and clients and is used to prevent
new connections being directed to failed nodes or instances. When a failure occurs, the application
is immediately notified of the change in cluster configuration by ONS, and the connection pool can
react by directing new connections to surviving instances.
Global Services Daemon (GSD)
The GSD allows clients including the
SRVCTL utility, the EM, and the DBCA to execute administrative commands such as instance start-up
Global Cache Service (GCS)
RAC instances share the same set of datafiles. It is therefore possible that one or more instances might
attempt to read and/or update the same block at the same time. So access to the data blocks across the cluster must be managed in order to guarantee only one instance can modify the block at a time. In addition, any changes must be made visible to all other instances immediately once the transaction is committed.
This is managed by the GCS, which coordinates requests for data access between the instances of the cluster.
Global Enqueue Service (GES)
In a RAC database, the GES is responsible for interinstance resource coordination. The GES manages
all non-Cache Fusion intra-instance resource operations. It tracks the status of all Oracle enqueue
mechanisms for resources that are accessed by more than one instance. Oracle uses GES to manage
concurrency for resources operating on transactions, tables, and other structures within a RAC
The RECO background process was introduced in Oracle 7.0 and is used in distributed database
configurations to automatically resolve failures in distributed transactions.
Job queue background processes are used to run batch jobs within the Oracle database. Jobs can be
scheduled to run at a specified date and time or at regular intervals.
Queue monitor (ONINn) processes are optional background processes that monitor the message
queues for Oracle Advanced Queuing.
The ASMB background process runs in the RDBMS instance and connects to the foreground
processes in the ASM instance.
The RBAL background process in the RDBMS instance performs global opens to the disks in the disk
groups in the database instance.
RAC-Specific Background Processes
The LMS processes coordinate block updates, allowing only one instance at a time to make
changes to a block and ensuring that those changes are made to the most recent version of the
block. The LMS process on the resource master is responsible for maintaining a record of the current
status of the block, including whether it has been updated.
The Global Enqueue Service Monitor (LMON) background process is responsible for managing
global enqueues and resources. It also manages the Global Enqueue Service Daemon (LMD) processes
and their associated memory areas. LMON is similar to PMON in that it also manages instance and
process expirations and performs recovery processing on global enqueues.
The LMD background process is responsible for managing requests for global enqueues and
updating the status of the enqueues as requests are granted. Each global resource is assigned to
a specific instance using a hash algorithm. When an instance requests a lock, the LMD process of the
local instance sends a request to the LMD process of the remote instance managing the resource. If
the resource is available, then the remote LMD process updates the enqueue status and notifies the
local LMD process. If the enqueue is currently in use by another instance, the remote LMD process will
queue the request until the resource becomes available.
The instance enqueue background process (LCKO) is part of GES. It manages requests for resources
other than data blocks.
The DIAG background process captures diagnostic information when either a process or the entire