Chapter 18 · RAC and Clustered Oracle Concepts
When RAC Fits vs Data Guard, Sharding, or Application-Level Scaling—and Cost/Complexity Tradeoffs
Force an architecture decision from workload/SLO evidence by comparing RAC, Data Guard, Oracle Globally Distributed Database and application-level scaling across failure domain, consistency, latency, operational complexity and licensing.
Learning outcomes
ServiceHub leadership asks for “enterprise HA” and receives four proposals: RAC, Data Guard, Oracle Globally Distributed Database (formerly Oracle Sharding), and simply adding more stateless application servers/caches/queues. These are not interchangeable products. They change different failure domains and data topologies. The right choice starts with measurable Service Level Objectives (SLOs), workload coupling and consistency requirements—not with a brand-name feature.
Compare RAC, Data Guard, Oracle Globally Distributed Database (GDD), and application-level scaling by data topology/failure domain.
Separate node availability, site disaster recovery, write/data distribution, read scaling and stateless application capacity.
Map workload evidence such as hot blocks, redo rate, data locality and cross-shard transactions to architecture choice.
Record current RAC/Data Guard/GDD licensing boundaries instead of treating 'Enterprise Edition' as one all-inclusive feature set.
Produce a Free architecture decision record with SLOs, evidence, rejected alternatives and a reversible validation plan.
This chapter was reviewed against Oracle AI Database 26ai RU 23.26.3, SQL Developer 26.2, and SQLcl 26.2.1. Oracle AI Database Free is limited to 2 foreground CPU cores, 2 GB combined SGA/PGA RAM, 12 GB user data, one installation per logical environment, and receives no Release Update patches or Oracle Support service requests. Current 26ai licensing marks Oracle Real Application Clusters (RAC) unavailable in Free, SE2-ODA, BaseDB SE, BaseDB EE, and BaseDB EE-HP; RAC is an extra-cost option on EE/EE-ES and included with BaseDB EE-EP and ExaDB. Actual RAC requires Oracle Grid Infrastructure/Clusterware, multiple cluster nodes, shared database storage, a low-latency private interconnect, public/VIP/SCAN networking, and a certified platform. Mandatory Free labs therefore validate single-instance workload/service/storage facts and RAC design decisions; they never attempt to form a RAC cluster. Dynamic V$/GV$ diagnostics shown for entitled RAC systems avoid AWR/ASH so the lesson does not require Diagnostics Pack.
1. Start with the failure you must survive
“High availability” is incomplete without a failure domain. RAC primarily protects against instance/node failure inside a shared-database cluster. Data Guard protects by maintaining a separate database copy, typically across hosts/sites. Globally Distributed Database (GDD) distributes data across independent shards. Application scaling increases application-tier capacity/resilience and can reduce database load without changing the database's underlying failure domain.
| Architecture | Data topology | Primary strength | Key new complexity |
|---|---|---|---|
| RAC | One shared database, multiple instances | Node/instance HA + concurrent scale-out for suitable workloads | Clusterware/shared storage/interconnect/Cache Fusion + RAC licensing |
| Data Guard | Primary + redo-maintained standby copy | Site/database DR and role transition | Redo transport/apply, lag, role/client failover, second-system operations |
| Globally Distributed Database | Data partitioned across shards | Horizontal data/write scale and failure isolation | Shard key/data distribution, cross-shard query/transaction operations |
| Application-level scaling | Same DB unless app architecture changes it | Stateless request capacity, caching/queue isolation | Cache consistency, idempotency, async workflows, app observability |
2. RAC is not a site-disaster copy
RAC nodes normally share the database storage and reside in a tightly connected cluster. It can survive an instance/node failure while other instances keep the database open. But a site-level storage/network/power disaster can still affect the whole cluster. Oracle's Maximum Availability Architecture commonly combines RAC for local node HA with Data Guard for site/database DR when both failure domains matter.
3. Data Guard is not active write scale-out
A physical standby receives/applies primary redo. Role transition changes which database is primary; ordinary Data Guard does not split concurrent writes across two primaries. Active Data Guard can offload reads/apply-aware workloads under its license, but the fundamental write-primary model remains different from sharding.
4. GDD changes the data model itself
Oracle Globally Distributed Database (GDD), formerly Oracle Sharding, partitions data horizontally across independent Oracle databases called shards. A shard key routes related data/transactions. This can scale writes/data far beyond one shared database and isolate failures, but cross-shard joins/transactions, resharding, shard-key mistakes and operational topology are fundamentally different concerns from RAC Cache Fusion.
Current 26ai licensing makes GDD available in Free with a limit of three shards; every Free shard must still obey Free's CPU/RAM/user-data limits and one-installation-per-logical-environment rule. EE/EE-ES and cloud limits depend on whether each shard has RAC/Active Data Guard/GoldenGate and the exact offering.
5. Application scaling can remove the need for database scale-out
Before clustering the database, ask whether the pressure is actually in stateless web/API CPU, repeated cacheable reads, synchronous workflow coupling, inefficient SQL, connection storms, or batch scheduling. Horizontal application servers, bounded connection pools, caching, asynchronous queues and query/index/schema tuning can often grow throughput while keeping the database simpler.
More web servers do not make a single database survive database/storage failure. Architecture must cover each required failure domain explicitly.
6. Evidence map
| Measured requirement/evidence | Architecture implication |
|---|---|
| Must survive one DB server with same database/storage available | RAC/RAC One Node can fit, subject to licensing/topology |
| Must survive complete site/database loss | Data Guard/independent recovery site or another remote data architecture |
| Writes/data exceed one database and partition naturally by tenant/region/key | GDD/sharding deserves evaluation |
| One few blocks/index leaves dominate gc contention | Fix data/access design before adding RAC nodes |
| Database is fine; API CPU/connection bursts dominate | Application/pool/cache/queue scaling before RAC |
| Need both node HA and site DR | RAC + Data Guard can be complementary, at greater cost/complexity |
7. Licensing is part of architecture
Under the current 26ai matrix:
- Oracle RAC: unavailable in Free; extra-cost on EE/EE-ES; included in BaseDB EE-EP and ExaDB.
- RAC One Node: unavailable in Free; extra-cost on EE/EE-ES.
- Data Guard Redo Apply: unavailable in Free; available in EE/EE-ES and specified higher cloud offerings.
- Active Data Guard: separate extra-cost option on EE/EE-ES; included in BaseDB EE-EP/ExaDB.
- Oracle Globally Distributed Database: available in Free with a three-shard limit; other offering/topology limits depend on licensed replication/RAC options.
Licensing terms can change and contracts govern actual entitlement; production architecture review must use the current manual/order documents.
8. Free architecture decision-record lab
SELECT MAX(CASE WHEN name='user commits' THEN value END) AS commits, MAX(CASE WHEN name='redo size' THEN value END) AS redo_bytes, MAX(CASE WHEN name='session logical reads' THEN value END) AS logical_readsFROM v$sysstatWHERE name IN ('user commits','redo size','session logical reads');SELECT COUNT(*) AS user_sessionsFROM v$sessionWHERE type='USER';SELECT db_unique_name, database_role, open_mode, log_modeFROM v$database;
CREATE TABLE servicehub_arch_decision ( requirement VARCHAR2(80) PRIMARY KEY, target_value VARCHAR2(100) NOT NULL, observed_evidence VARCHAR2(500), architecture_effect VARCHAR2(500) NOT NULL);INSERT INTO servicehub_arch_decision VALUES ('node_failure_rto','< business target >', 'single-instance Free baseline', 'Evaluate RAC only if node-local DB availability justifies shared-cluster cost');INSERT INTO servicehub_arch_decision VALUES ('site_failure_rpo','< business target >', 'No remote copy in Free lab', 'Requires Data Guard/remote recovery architecture, not RAC alone');INSERT INTO servicehub_arch_decision VALUES ('write_distribution','tenant/region coupling', 'Measure cross-tenant transactions', 'Evaluate GDD only if shard key/locality is strong');INSERT INTO servicehub_arch_decision VALUES ('database_pressure','measured bottleneck', 'SQL/CPU/I/O/session evidence', 'Prefer SQL/app scaling if database clustering does not address the bottleneck');SELECT * FROM servicehub_arch_decision ORDER BY requirement;DROP TABLE servicehub_arch_decision PURGE;
Replace placeholders with actual SLOs before architecture approval. The lab intentionally refuses to output “RAC wins” from generic weights.
9. Deliberately wrong: RAC as the default enterprise answer
RAC can increase licensing, Grid Infrastructure/shared-storage/network design, patching, monitoring and Cache Fusion complexity while failing to solve a remote-site RPO. Conversely, sharding can overcomplicate a strongly relational workload with frequent cross-tenant transactions. Data Guard can solve DR while offering no active write scale-out. Each tool is excellent when its topology matches the requirement.
10. Decision sequence
- Define SLOs: node/site RTO, RPO, throughput, latency, consistency and maintenance window.
- Measure current bottlenecks: CPU, I/O, SQL plans, lock/hot-block profile, redo rate, connections and dataset growth.
- Map failure domains and data locality/cross-transaction coupling.
- List the minimum architecture that satisfies each requirement.
- Apply licensing/infrastructure/operations/security cost.
- Prototype with representative workload/failure tests.
- Approve an explicit rollback/migration path if the expected benefit does not materialize.
11. Production judgment and chapter close
Choose RAC when a shared Oracle database genuinely benefits from multiple active instances and node-level HA while the workload tolerates/benefits from Cache Fusion. Choose Data Guard when the primary requirement is a separate recovery database/site. Choose GDD when horizontal data/write partitioning and shard locality are architectural requirements. Scale the application tier when the database is not the bottleneck or when caching/queues/stateless concurrency solve the demand more cheaply.
Current course baseline remains 26ai RU 23.26.3. SQL Developer
26.2 and SQLcl 26.2.1 are current generation-time tools. RAC
requires Grid Infrastructure and certified
shared-storage/interconnect architecture; no
COMPATIBLE setting alone turns a single instance
into RAC. This closes Chapter 18 with a decision framework
rather than an assumption that clustering is inherently the
“most enterprise” design.
Check your understanding
- What primary failure domain does RAC address better than a single instance?
- Why does RAC alone not provide remote-site disaster recovery?
- When is GDD fundamentally different from RAC?
- Can application-tier scaling replace database HA?
- Is RAC included automatically with every Enterprise Edition deployment?
Review the answers
It can keep the same shared database available through an instance/node failure by running other RAC instances.
RAC instances normally share one database/storage cluster; site/storage failure can affect all of them, so a separate copy such as Data Guard is needed for that domain.
GDD partitions data across independent shard databases and requires shard-key/data-locality design rather than one shared database with Cache Fusion.
No. More app nodes can improve request capacity but do not make a failed database/storage layer available.
No. RAC is an extra-cost option on EE/EE-ES under the current matrix and is included only in specified offerings such as BaseDB EE-EP/ExaDB.
Authoritative references
- Licensing Information — RAC, Data Guard, Active Data Guard and GDD offering boundaries
- Introduction to Oracle RAC — RAC topology/availability/scalability
- Introduction to Oracle Data Guard — standby/site-recovery topology
- Oracle Globally Distributed Database — distributed/sharded database architecture
- Design and Deployment Techniques — RAC workload/service/index/sequence design