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,90 @@
# Pattern: Cross-Region Database DR
# Composable architecture block for cross-region disaster recovery
pattern:
name: "Cross-Region Database DR"
id: database_dr_cross_region
category: database-dr
description: |
Cross-region disaster recovery using Autonomous Data Guard or Active Data Guard to
maintain an asynchronous standby database in a remote OCI region. Provides protection
against full-region outages with RPO measured in seconds and RTO in minutes. Applicable
to ADB-S, DBCS, and ExaCS deployments.
variants:
- id: adb_s_cross_region
name: "ADB-S Cross-Region Autonomous Data Guard"
topology: "ADB-S primary in Region A, Autonomous Data Guard standby in Region B"
rpo: "Seconds (asynchronous replication)"
rto: "< 15 minutes (automated switchover/failover)"
use_when:
- "ADB-S workload requires regional DR"
- "RPO of seconds is acceptable"
- "Fully managed DR with minimal operational overhead"
- id: dbcs_cross_region
name: "DBCS Cross-Region Active Data Guard"
topology: "DBCS primary in Region A, ADG standby in Region B"
rpo: "Seconds to minutes (asynchronous)"
rto: "Minutes to 1 hour depending on automation"
use_when:
- "DBCS workload requires regional DR"
- "Custom database configuration needed"
- "Manual or scripted failover acceptable"
- id: exacs_cross_region
name: "ExaCS Cross-Region Active Data Guard"
topology: "ExaCS primary in Region A, ADG standby in Region B"
rpo: "Seconds to minutes (asynchronous)"
rto: "Minutes to 1 hour depending on automation"
use_when:
- "ExaCS workload requires regional DR"
- "High-performance database with regional protection"
- "Consolidated databases on Exadata with cross-region standby"
preconditions:
- "Primary database provisioned and operational"
- "DR region selected with matching service availability"
- "Network connectivity between regions (remote VCN peering via DRG or dedicated infrastructure)"
- "Sufficient quota in DR region for standby compute and storage"
- "For DBCS/ExaCS: Active Data Guard license (EE-HP or EE-EP, or BYOL with ADG option)"
implied_services:
- service: dns_traffic_management
reason: "Automated DNS failover to redirect application traffic to DR region"
- service: oci_notifications
reason: "Alerting on replication lag, failover events, and switchover status"
- service: monitoring
reason: "Track replication lag, standby apply rate, and DR readiness"
conflicts:
- pattern: "sync_data_guard_cross_region"
reason: "Synchronous Data Guard is not supported cross-region due to latency; only asynchronous replication is available"
gotchas:
- "Cross-region Active/Autonomous Data Guard is asynchronous only — RPO is always > 0"
- "Cross-region data transfer costs apply for redo log transport between regions"
- "Switchover is planned (zero data loss, brief outage) vs. failover is unplanned (potential data loss up to RPO)"
- "After failover, old primary must be reinstated or re-created — not automatic for DBCS/ExaCS"
- "Application connection strings must be updated or use DNS-based failover"
- "ADB-S cross-region DR requires both regions to support ADB-S"
- "DR readiness should be validated with periodic switchover drills"
cost_impact:
- "Full standby compute and storage cost in DR region (same as primary)"
- "Cross-region network egress charges for redo transport"
- "For ADB-S: standby OCPU/ECPU billed at same rate as primary"
- "DNS Traffic Management: per-zone and per-query charges"
- "Consider reserved capacity in DR region for cost optimization"
sizing_rules:
- "Standby must be same shape and size as primary to ensure failover performance"
- "Network bandwidth: estimate redo generation rate (typically 10-50 Mbps per 10K TPS)"
- "Storage in DR region must match primary storage allocation"
- "For ExaCS: same Exadata infrastructure shape required in DR region"
references:
- "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/autonomous-data-guard.html"
- "https://docs.oracle.com/en/cloud/paas/base-database/index.html"
- "https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/"