initial version

This commit is contained in:
2026-03-18 18:03:44 -03:00
commit 9d269e902b
136 changed files with 28175 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
# Pattern: Active Data Guard HA/DR
# Composable architecture block for Oracle Database high availability
pattern:
name: "Active Data Guard"
id: active_data_guard
category: database-ha
applies_to: [adb_s, adb_d, dbcs, exacs]
description: |
Oracle Active Data Guard provides real-time data protection with a standby database
that can be used for read-only queries, reporting, and backups while maintaining
synchronous or asynchronous replication from the primary.
variants:
- id: adg_same_region
name: "Same-Region ADG (HA)"
topology: "Primary + Standby in same region, different ADs or FDs"
rpo: "0 (synchronous)"
rto: "< 30 seconds (automatic failover with FSFO)"
use_when:
- "99.99% SLA requirement"
- "Zero RPO mandatory"
- "Read-only offload needed"
- id: adg_cross_region
name: "Cross-Region ADG (DR)"
topology: "Primary in Region A, Standby in Region B"
rpo: "> 0 (asynchronous, typically seconds to minutes)"
rto: "Minutes to 1 hour depending on automation"
use_when:
- "Regional disaster recovery required"
- "RPO of seconds acceptable"
- "Regulatory requirement for geo-separation"
- id: adg_hybrid
name: "Same-Region HA + Cross-Region DR"
topology: "Primary + Local Standby (sync) + Remote Standby (async)"
rpo: "0 local, seconds remote"
rto: "< 30s local, minutes remote"
use_when:
- "Maximum protection: HA + DR"
- "Mission-critical workloads"
preconditions:
- "Oracle Database Enterprise Edition with Active Data Guard option"
- "BYOL: customer must have ADG license or ULA"
- "License Included: ADG included with ADB-S, ExaCS EE-HP/EE-EP"
- "For ADB-S: Autonomous Data Guard (managed, no manual config)"
implied_services:
- service: data_guard
- service: dns_traffic_management
reason: "DNS failover for application connection string update"
when: "cross_region"
- service: oci_notifications
reason: "Alert on failover events"
conflicts:
- pattern: "backup_restore_only"
reason: "ADG provides real-time replication; backup-restore is a subset"
cost_impact:
- "Standby database incurs full compute + storage cost"
- "For ADB-S: standby OCPUs billed at same rate"
- "Cross-region: additional network egress for redo transport"
- "BYOL: ADG license required (included in EE-EP)"
sizing_rules:
- "Standby must be same shape/OCPU as primary for failover"
- "For read-only offload: standby can handle ~80% of primary read capacity"
- "Network bandwidth for redo: estimate 10-50 Mbps per 10K TPS (varies by workload)"
references:
- "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/autonomous-data-guard.html"
- "https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/"

View File

@@ -0,0 +1,87 @@
---
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