---
last_verified: 2026-03-14
pattern: Database High Availability
category: database
---

description: |
  Patterns for achieving high availability for Oracle databases on OCI.
  Covers ADB-S, ADB-D, ExaCS, and DBCS configurations.

patterns:
  adb_s_ha:
    name: "ADB-S Built-in HA"
    availability: "99.95% SLA"
    rto: "<30 seconds"
    rpo: "0 (synchronous)"
    components:
      - "ADB-S with Autonomous Data Guard (same-region)"
      - "Automatic failover enabled"
      - "No additional configuration needed"
    cost_impact: "2x OCPU cost (standby billed at same rate)"
    when_to_use:
      - "Standard HA requirement"
      - "Same-region protection sufficient"
    notes:
      - "Standby is provisioned automatically when ADG is enabled"
      - "Failover is transparent to applications using recommended connection strings"
      - "Switchover for planned maintenance is automatic"

  adb_s_cross_region:
    name: "ADB-S Cross-Region ADG"
    availability: "99.95% SLA per region, survives region failure"
    rto: "<5 minutes (automatic), <30 minutes (manual)"
    rpo: "Seconds (asynchronous replication)"
    components:
      - "ADB-S primary in Region 1"
      - "ADB-S standby in Region 2 (cross-region ADG)"
      - "Optional: Refreshable clone in Region 2 for reporting"
    cost_impact: "2x OCPU + inter-region data transfer"
    when_to_use:
      - "Compliance requires geo-redundant DR"
      - "RTO < 30 minutes for region failure"
      - "Business-critical workloads"
    notes:
      - "Cross-region ADG is asynchronous — RPO is not zero"
      - "Automatic failover requires ADG Auto-Failover configuration"
      - "Test failover quarterly"

  exacs_rac_ha:
    name: "ExaCS RAC High Availability"
    availability: "99.95%+ (RAC + Data Guard)"
    rto: "<60 seconds (RAC failover)"
    rpo: "0 (synchronous within RAC)"
    components:
      - "ExaCS with multi-node RAC"
      - "Data Guard to standby ExaCS (same or cross-region)"
      - "Fast-Start Failover (FSFO) with Observer"
    cost_impact: "2x infrastructure for Data Guard standby"
    when_to_use:
      - "Application requires RAC"
      - "Sub-minute RTO required"
      - "High-throughput OLTP workloads"

  dbcs_ha:
    name: "DBCS 2-Node RAC + Data Guard"
    availability: "99.95%"
    rto: "<60 seconds (RAC), <5 minutes (Data Guard)"
    rpo: "0 (synchronous within region)"
    components:
      - "DBCS 2-node RAC (primary)"
      - "DBCS Data Guard standby"
    cost_impact: "3x compute (2 RAC + 1 DG standby)"
    when_to_use:
      - "Moderate workloads needing HA"
      - "Budget doesn't allow Exadata"

decision_tree: |
  Need HA for Oracle Database?
  ├── Using ADB-S?
  │   ├── Same-region sufficient → Enable ADG (built-in)
  │   └── Cross-region required → Cross-region ADG
  ├── Using ExaCS?
  │   ├── RAC for local HA
  │   └── Data Guard for DR (same or cross-region)
  └── Using DBCS?
      ├── 2-node RAC for local HA
      └── Data Guard for DR
