An Oracle RAC database has the same processes and memory structures as a single instance.Oracle database have additional process and memory structures that are specific to Oracle RAC.The global cache service and global enqueue service processes, and the global resource directory (GRD) collaborate to enable cache fusion.

Global Resource Directory [GRD] :

Cluster operations require synchronization among all instances to control shared access to resources. Real Application Clusters uses the Global Resource Directory to record information about how resources are used within a cluster database.

Each instance maintains part of the global resource directory in the System Global Area (SGA).

To know about Background Processes in Oracle RAC.

Now what GRD stores?

  1. Data block identifiers, such as data block address.
  2. Where the most current versions of data block reside when blocks have been cached into buffer caches on multiple nodes in the cluster.
  3. Mode of a block being held by holding instance: A data block can be of any of the 3 modes.
    a. NULL [N] : No access rights, a lock is held at this level to indicate that a process is interested in a resource
    b.Exclusive [X]: This level grants the holding process exclusive access. Other processes cannot write to the resource. It may have consistent read blocks.
    c. Shared [S]: A shared mode indicates that the resource holder has a shared lock on the block and is performing a read operation. As the mode name, since the lock is shared, any other resource can also read the block.
  4. A role in which block is being held by holding instance
    1. Local: When a data block is first read from the disk into the cache, it’s role is said to be LOCAL. This also means that no other modified/dirty copy of the block exists in the cache.
    2. 2.Global : When a data block is acquired from a remote instance and if this data block is already modified in the remote instance, then the role of the block is said to be GLOBAL. If multiple copies of modified/dirtied data block exist across multiple instances, then the role of this data block is considered to be GLOBAL.

Global Cache Service [GCS] :

Global cache service is a heart of CACHE FUSION process.When multiple instances need the same block for a different operation, GCS maintains data integrity in Oracle RACGlobal Cache Service is available in RAC as LMS background process.

GCS is responsible for :

  1. Tracking the data block
  2. Accepting the data block requests from instances.
  3. Informing the holding instance to release the lock on the data block or ship a CR image
  4. Coordinating the shipping of data blocks as needed between the instance through the interconnect
  5. Informing the instances to keep or discard PIs(Past Image).

Global Enqueue Service [GES] :

This service coordinates local and global enqueues. GES processing includes the coordination for enqueues other than the data blocks.This involves all non-Cache fusion intra-instance operations.

The Global Enqueue Service tracks the status of all Enqueuing mechanisms of Oracle.It performs concurrency control on dictionary cache locks, library cache locks and transactions.It performs concurrency control when resources are accessed by multiple nodes.It controls access to data files and control files but not for the data blocks.

Stay Tuned for Cache Fusion in Oracle RAC.



Skant Gupta’s LinkedIn:

Joel Perez’s LinkedIn: Joel Perez’s Profile

Anuradha’s LinkedIn: Anuradha’s Profile

LinkedIn Group: Oracle Cloud DBAAS

Facebook Page: OracleHelp

About The Author

Leave a Reply
