98 lines
3.2 KiB
YAML
98 lines
3.2 KiB
YAML
---
|
|
last_verified: 2026-03-14
|
|
pattern: Database Disaster Recovery
|
|
category: database
|
|
---
|
|
|
|
description: |
|
|
DR patterns for Oracle databases on OCI. Covers active-passive,
|
|
active-active, and pilot light approaches.
|
|
|
|
tiers:
|
|
tier_1_mission_critical:
|
|
name: "Mission Critical"
|
|
rto: "<15 minutes"
|
|
rpo: "<1 minute"
|
|
pattern: "Active-passive with automatic failover"
|
|
implementation:
|
|
adb_s: "Cross-region ADG with auto-failover"
|
|
exacs: "Cross-region Data Guard with FSFO + Observer"
|
|
cost_multiplier: "2x (full standby)"
|
|
testing: "Quarterly automated DR drill"
|
|
|
|
tier_2_business_critical:
|
|
name: "Business Critical"
|
|
rto: "<1 hour"
|
|
rpo: "<15 minutes"
|
|
pattern: "Active-passive with manual failover"
|
|
implementation:
|
|
adb_s: "Cross-region ADG with manual switchover"
|
|
exacs: "Cross-region Data Guard without FSFO"
|
|
cost_multiplier: "2x (full standby) or 1.5x (scaled-down standby)"
|
|
testing: "Semi-annual DR drill"
|
|
|
|
tier_3_standard:
|
|
name: "Standard"
|
|
rto: "<4 hours"
|
|
rpo: "<1 hour"
|
|
pattern: "Pilot light or backup-restore"
|
|
implementation:
|
|
adb_s: "Cross-region backup with restore-on-demand"
|
|
exacs: "RMAN backups to Object Storage, cross-region replicated"
|
|
cost_multiplier: "1.1x (backup storage only)"
|
|
testing: "Annual DR drill"
|
|
|
|
dr_regions:
|
|
recommended_pairs:
|
|
- primary: "US East (Ashburn)"
|
|
dr: "US West (Phoenix)"
|
|
latency_ms: "~60"
|
|
- primary: "UK South (London)"
|
|
dr: "Germany Central (Frankfurt)"
|
|
latency_ms: "~15"
|
|
- primary: "Japan East (Tokyo)"
|
|
dr: "Japan Central (Osaka)"
|
|
latency_ms: "~10"
|
|
- primary: "Brazil East (Sao Paulo)"
|
|
dr: "Brazil Southeast (Vinhedo)"
|
|
latency_ms: "~5"
|
|
|
|
migration_cutover:
|
|
zero_downtime:
|
|
tools: ["ZDM with GoldenGate", "Data Guard switchover"]
|
|
prerequisites:
|
|
- "GoldenGate configured and replicating"
|
|
- "Application connection strings use TNS aliases"
|
|
- "DNS TTL reduced before cutover"
|
|
steps:
|
|
- "Verify replication lag is zero"
|
|
- "Stop writes to source"
|
|
- "Verify final sync"
|
|
- "Switch application connection strings"
|
|
- "Validate application functionality"
|
|
- "Decommission source (after bake period)"
|
|
|
|
planned_downtime:
|
|
tools: ["Data Pump", "RMAN restore", "ZDM physical"]
|
|
typical_downtime: "2-8 hours depending on database size"
|
|
steps:
|
|
- "Announce maintenance window"
|
|
- "Take final backup/export"
|
|
- "Restore/import to target"
|
|
- "Switch application connections"
|
|
- "Validate"
|
|
|
|
gotchas:
|
|
- id: DR-001
|
|
issue: "Cross-region ADG network latency affects commit performance"
|
|
impact: "Synchronous mode adds latency to every commit"
|
|
recommendation: "Use asynchronous for cross-region (default), accept seconds of RPO"
|
|
- id: DR-002
|
|
issue: "DR standby compute may not be available during regional disaster"
|
|
impact: "If DR region is also impacted, compute capacity may be limited"
|
|
recommendation: "Use capacity reservations in DR region for critical workloads"
|
|
- id: DR-003
|
|
issue: "Application tier DR often forgotten"
|
|
impact: "Database fails over but app tier is not available"
|
|
recommendation: "Include app tier in DR plan — Terraform for on-demand provisioning"
|