Saturday, September 26, 2026
  • About Us
  • Contact
DBAInsight
  • Guides
    • 23ai
    • RMAN
    • 26ai
    • Patch Update
    • RMAN
    • MySQL
    • Oracle GoldenGate
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification
NEWSLETTER
No Result
View All Result
DBAInsight
Home Guides

Oracle RAC 19c Internals Explained: GRD, GES, and GCS Made Simple

March 5, 2026
in Guides
0
Oracle RAC 19c Internals
0
SHARES
300
VIEWS

Table of Contents

Toggle
    • Introduction
      • Related posts
      • Oracle Database Monitoring Tools: 10 Best Tools for DBAs in 2026
      • Oracle Database Release Roadmap 2026: Current Support Status, 19c, 21c and 26ai
  • What Problem Does RAC Solve?
  • What is GRD (Global Resource Directory)?
    • Think of GRD like this:
  • What is GES (Global Enqueue Service)?
      • It manages:
      • Example
  • What is GCS (Global Cache Service)?
      • Example
  • GRD + GES + GCS Relationship
  • Where are these components stored?
  • Master and Shadow Resources
      • Example
  • How RAC Handles a Block Update
      • Step 1: Instance 1 updates a block
      • Step 2: Instance 2 requests same block
      • Step 3: Lock managed by GES
  • Why This Matters for Performance
      • Poor design causes:
      • Good design ensures:
  • Common Performance Waits Related to GRD
  • Best Practices for RAC Performance
      • βœ” Use service-based workload routing
      • βœ” Avoid hot blocks
      • βœ” Use NOORDER sequences in RAC
      • βœ” Increase sequence cache size
      • βœ” Monitor interconnect traffic
  • RAC Internals Simplified
  • Easy Memory Trick
  • Conclusion

Introduction

Oracle Real Application Clusters (RAC) is one of the most powerful high-availability database technologies available today. It allows multiple database instances to run on different nodes while accessing the same database storage.

But behind this seamless experience lies a complex internal architecture that ensures consistency, synchronization, and performance across nodes.

Related posts

Oracle Database Monitoring Tools

Oracle Database Monitoring Tools: 10 Best Tools for DBAs in 2026

September 22, 2026
Oracle Database Release Roadmap 2026: Current Support Status, 19c, 21c and 26ai

Oracle Database Release Roadmap 2026: Current Support Status, 19c, 21c and 26ai

September 21, 2026

In this article, we’ll break down three critical Oracle RAC internals in a simple and practical way:

  • GRD (Global Resource Directory)
  • GES (Global Enqueue Service)
  • GCS (Global Cache Service)

By the end, you’ll understand how Oracle RAC manages concurrency and ensures data consistency across all instances.


What Problem Does RAC Solve?

In a single-instance database, one database manages all data access. But in RAC:

πŸ‘‰ Multiple instances access the same data blocks simultaneously

This creates challenges like:

  • Data consistency
  • Lock coordination
  • Cache synchronization
  • Performance overhead

Oracle solves this using GRD, GES, and GCS


What is GRD (Global Resource Directory)?

The Global Resource Directory (GRD) is the central brain of RAC coordination.

It keeps track of:

  • Who owns which data block
  • Which instance holds locks
  • Which instance has cached copies
  • Which instance is the master of a resource

Think of GRD like this:

GRD = Cluster-wide dictionary of all resources

Every RAC instance maintains a portion of the GRD, so it is:

βœ” Distributed
βœ” Highly available
βœ” Efficient


What is GES (Global Enqueue Service)?

GES is responsible for global locks across RAC instances.

It manages:

  • Row locks
  • Table locks
  • DDL locks
  • Library cache locks

Whenever two instances try to modify the same data or structure:

πŸ‘‰ GES coordinates who gets the lock

Example

Instance 1 updates a row
Instance 2 tries to update same row

GES ensures:

Only one instance holds the lock at a time

This prevents data corruption and conflicts


What is GCS (Global Cache Service)?

GCS handles data block consistency across instances

This is also known as Cache Fusion

Instead of writing blocks to disk, RAC transfers them directly between nodes over the interconnect.

Example

Instance 1 has a block in memory
Instance 2 needs it

πŸ‘‰ GCS transfers the block from Instance 1 β†’ Instance 2

No disk read required πŸ”₯


GRD + GES + GCS Relationship

Here’s how everything works together:

GRD β†’ knows where everything isGES β†’ manages locksGCS β†’ manages data blocks

Where are these components stored?

Oracle uses different memory areas:

ComponentStored in
GES (Enqueue Resources)Shared Pool
GCS (Cache Resources)Large Pool
GRDDistributed across instances

Master and Shadow Resources

Each resource in GRD has:

  • One MASTER copy
  • Multiple SHADOW copies

Example

Block A:Master β†’ Instance 2
Shadow β†’ Instance 1, Instance 3

This allows fast coordination without central bottlenecks.


How RAC Handles a Block Update

Let’s walk through a simple scenario:

Step 1: Instance 1 updates a block

  • GCS marks it as modified
  • GRD updates ownership

Step 2: Instance 2 requests same block

  • GRD identifies Instance 1 as owner
  • GCS transfers block via interconnect

Step 3: Lock managed by GES

  • GES ensures safe access

Result:

βœ” No disk read
βœ” Fast transfer
βœ” Consistent data


Why This Matters for Performance

These components directly impact:

  • Query performance
  • Transaction speed
  • Interconnect traffic
  • Scalability

Poor design causes:

  • Excessive block pinging
  • High global cache waits
  • Enqueue contention

Good design ensures:

  • Cache locality
  • Reduced cross-node traffic
  • High throughput

Common Performance Waits Related to GRD

When something is not optimized, you may see waits like:

  • gc cr request
  • gc buffer busy
  • enq: TX row lock contention
  • ges resource busy

These are directly related to GCS and GES activity


Best Practices for RAC Performance

Here are a few DBA tips:

βœ” Use service-based workload routing

Keep related sessions on the same instance

βœ” Avoid hot blocks

Partition heavily accessed tables

βœ” Use NOORDER sequences in RAC

Reduces SQ enqueue contention

βœ” Increase sequence cache size

Reduces global synchronization

βœ” Monitor interconnect traffic

Ensure low latency network


RAC Internals Simplified

Let’s summarize everything in one simple model:

Client β†’ connects to InstanceInstance uses:
GES β†’ to get locks
GCS β†’ to get data blocks
GRD β†’ to find resource owner

Easy Memory Trick

Remember this:

GES = Locks
GCS = Blocks
GRD = Directory


Conclusion

Oracle RAC is powerful because it allows multiple instances to work together on the same database.

But this is only possible because of the intelligent coordination done by:

  • GRD (Global Resource Directory)
  • GES (Global Enqueue Service)
  • GCS (Global Cache Service)

These components ensure:

βœ” Data consistency
βœ” High performance
βœ” Scalability
βœ” Fault tolerance

Understanding these internals will help you:

  • Troubleshoot RAC issues faster
  • Improve performance
  • Design better architectures
Tags: GRD GES GCSOracle RAC 19cOracle RAC ArchitectureOracle RAC InternalsOracle RAC Performance
Previous Post

Oracle DBMS_REPAIR Guide – Detect and Fix Data Block Corruption (Step-by-Step)

Next Post

Understanding Global Resource Directory (GRD) in Oracle RAC and ASM

Next Post
Understanding Global Resource Directory (GRD) in Oracle RAC and ASM

Understanding Global Resource Directory (GRD) in Oracle RAC and ASM

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

POPULAR NEWS

  • Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    0 shares
    Share 0 Tweet 0
  • How To Download And Install The Latest OPatch

    0 shares
    Share 0 Tweet 0
  • How to Install Oracle 19c Database on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

    0 shares
    Share 0 Tweet 0
  • Installing Oracle Database 26AI on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • About Us
  • Contact

Β© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

No Result
View All Result
  • Home
  • Cloud & Modern DBs
  • Guides
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification

Β© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

Add as a preferred source on Google
Add as preferred source on Google