initial version
This commit is contained in:
76
kb/patterns/database-ha/active-data-guard.yaml
Normal file
76
kb/patterns/database-ha/active-data-guard.yaml
Normal 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/"
|
||||
87
kb/patterns/database-ha/pattern.yaml
Normal file
87
kb/patterns/database-ha/pattern.yaml
Normal 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
|
||||
Reference in New Issue
Block a user