Disaster Recovery Strategies in Azure

A disaster recovery strategy defines how your systems survive and recover from events that cannot be handled by normal high availability mechanisms — extended region outages, data corruption, ransomware, or accidental mass deletion. Unlike HA, which is always active, DR is the plan you execute after a failure has already occurred. The quality of your DR strategy is determined by how clearly you have defined your recovery objectives, how well your technical implementation meets them, and how recently you tested that it actually works.

DR tiers and recovery objectives

Not every workload needs the same level of DR investment. Tier your applications by criticality and assign recovery objectives accordingly. This prevents over-engineering low-criticality systems and under-engineering mission-critical ones.

TierDescriptionTarget RTOTarget RPOApproach
Tier 1: Mission CriticalRevenue-generating, regulatory obligation, safety-critical<15 minutes<1 minuteActive-active or warm standby, synchronous replication
Tier 2: Business CriticalCore operations, significant productivity impact if down<4 hours<1 hourWarm standby, async replication, automated failover
Tier 3: ImportantImportant but manual workarounds exist<24 hours<4 hoursCold standby, frequent backups, manual failover
Tier 4: StandardDev/test, internal tools with low impact<72 hours<24 hoursBackup and restore, no standby environment

Assign every production workload to a tier during architecture review. The tier determines the DR investment level and which Azure services you use for that workload. Review tier assignments annually as business criticality changes.

Azure Site Recovery for VM replication

Azure Site Recovery (ASR) provides continuous replication of VMs from a source region to a target (recovery) region. It replicates at the VM disk level, asynchronously, with a configurable RPO target (typically 30 seconds to 24 hours). When a disaster occurs, you initiate a failover and ASR creates the VMs in the recovery region from the latest replication point. For Tier 1 and Tier 2 workloads that run on VMs, ASR is the primary DR mechanism.

# Set up ASR for a VM (assumes Recovery Services vault already created in target region)
# Step 1: Register the source subscription with ASR provider
az provider register --namespace Microsoft.RecoveryServices

# Step 2: Enable replication for a VM via the portal or ARM template
# (CLI enablement requires an ARM template due to ASR's complexity)
# Verify replication health after enabling
az backup item show \
  --resource-group recovery-rg \
  --vault-name myRecoveryVault \
  --name myVM \
  --backup-management-type AzureIaasVM \
  --workload-type VM

# Step 3: View ASR protected items
az site-recovery protected-item list \
  --resource-group recovery-rg \
  --vault-name myRecoveryVault \
  --fabric-name primaryRegionFabric \
  --protection-container-name primaryContainer

ASR has a Test Failover capability that creates a copy of the protected VMs in an isolated virtual network in the recovery region. This allows you to verify that the VMs start correctly, that applications initialise, and that connectivity works — without affecting the live replication or the production environment. Run test failovers quarterly.

Database disaster recovery

Each managed database service in Azure has its own DR mechanism. Match the mechanism to your RPO requirement.

Azure SQL Database provides automated backups (full weekly, differential every 12 hours, transaction logs every 5–12 minutes) retained for 1–35 days. For cross-region DR, active geo-replication creates a continuously synchronised readable secondary in another region. Failover can be initiated manually or automatically via a failover group. Failover group DNS entries update automatically after failover, so applications using the listener endpoint do not need reconfiguration.

# Create a failover group for Azure SQL Database
az sql failover-group create \
  --name myFailoverGroup \
  --resource-group myRG \
  --server myPrimaryServer \
  --partner-server mySecondaryServer \
  --partner-resource-group myDRRG \
  --failover-policy Automatic \
  --grace-period 1

# Initiate manual failover (for DR test or planned maintenance)
az sql failover-group set-primary \
  --name myFailoverGroup \
  --resource-group myDRRG \
  --server mySecondaryServer

Azure Cosmos DB supports point-in-time restore within a region (up to 30 days) and geo-replication for cross-region DR. With multi-region writes enabled, a regional outage does not require a failover — traffic routes to the remaining write region automatically. The failover priority list determines which region becomes the new write region if the primary fails in single-write mode.

Azure Database for PostgreSQL Flexible Server with zone-redundant HA handles zone failures automatically. For regional DR, enable geo-redundant backup, which replicates backup files to the paired region. Restoration to the paired region is a manual process (restore from geo-redundant backup to a new server in the target region).

Azure Backup for data protection

Azure Backup provides managed backup for VMs, SQL databases, PostgreSQL, Azure Files, Blob Storage, and on-premises workloads. Backups are stored in a Recovery Services vault. Configure the vault with geo-redundant storage (GRS) to replicate backup data to the paired region, or zone-redundant storage (ZRS) for zone-redundant backup within the same region.

For compliance-regulated workloads, enable immutable vaults. An immutable vault prevents backup data from being modified or deleted for a configured period, even by administrators. This protects against ransomware attacks that attempt to destroy backups before encrypting production data.

# Create a GRS Recovery Services vault
az backup vault create \
  --resource-group myRG \
  --name myBackupVault \
  --location eastus

az backup vault backup-properties set \
  --resource-group myRG \
  --name myBackupVault \
  --backup-storage-redundancy GeoRedundant

# Enable VM backup with a daily policy
az backup protection enable-for-vm \
  --resource-group myRG \
  --vault-name myBackupVault \
  --vm myVM \
  --policy-name DefaultPolicy

# Check backup job status
az backup job list \
  --resource-group myRG \
  --vault-name myBackupVault \
  --output table

DR runbooks and automation

A DR plan with no runbook is a plan that will fail under the stress of an actual disaster. Write step-by-step runbooks for every Tier 1 and Tier 2 workload. The runbook should be detailed enough that any member of the on-call team can execute it, not just the system’s primary engineer.

Automate as much of the failover process as possible using Azure Automation runbooks or Azure Logic Apps. Manual steps take time and are error-prone under pressure. An automated failover that triggers on an Azure Monitor alert can execute a failover in minutes without human intervention.

Every runbook must include: the trigger criteria for initiating failover, the sequence of steps, the validation checks after each step (how do you know it worked?), the rollback steps if failover causes worse problems, and the communication plan (who to notify, in what order, through what channel).

Testing DR plans

A DR plan that has never been tested is an unvalidated assumption. DR tests reveal gaps that are invisible in documentation: the secondary region’s DNS was not updated, the SSL certificate for the DR endpoint was never provisioned, the failover database connection string was not updated in the application configuration.

Run three levels of DR testing:

  • Component tests (monthly): Test individual DR capabilities in isolation. Restore a database backup to a test server. Run an ASR test failover in an isolated network.
  • Partial DR drill (quarterly): Simulate a single-service failure and execute the runbook. Measure actual RTO and compare to target.
  • Full DR simulation (annually): Simulate a complete regional failure. Execute all runbooks in sequence. Measure total recovery time. Identify and fix gaps before the next annual test.
Note

Document every test, including the ones that fail. A failed DR test that reveals a gap is a success — you found the problem before a real disaster. Track gap resolution as a P1 security-equivalent issue.

Common mistakes

  1. Confusing backup with disaster recovery. Backup protects against data loss. DR protects against service unavailability. A 24-hour-old backup in a GRS vault is excellent protection against data corruption but does nothing to restore service within a 4-hour RTO. You need both: backups for data protection and a running standby environment (or rapid provisioning process) for RTO.
  2. Not keeping DR environments current with production. The production environment changes every sprint. New microservices are added, configuration changes accumulate, infrastructure drifts. A DR environment that was set up two years ago and never updated will not match production when you need it. Include DR environment updates in every production change process.
  3. Forgetting non-infrastructure dependencies. VMs and databases are the easy parts of DR. The harder parts are DNS entries pointing to the new region, SSL certificates provisioned for DR endpoints, API keys and secrets replicated to the DR Key Vault, third-party integrations (payment gateways, shipping APIs) that only have the production endpoint whitelisted, and service accounts that only have access to production storage accounts.

Frequently asked questions

What is the difference between high availability and disaster recovery?

High availability (HA) keeps a system running through expected failure events within a region — a failed VM, a rack power outage, a software deployment gone wrong. Disaster recovery (DR) restores a system after a catastrophic event — a regional outage, a ransomware attack that encrypts all data, or complete destruction of infrastructure. HA is about uptime; DR is about survivability. You need both, and they use different tools.

What Azure services support geo-redundant backup?

Azure Backup with geo-redundant storage (GRS) vaults replicates backup data to the paired region automatically. Azure SQL Database automated backups with geo-redundant storage can be restored to any region. Azure Cosmos DB point-in-time restore works within a region; cross-region copies require active geo-replication. Azure Site Recovery replicates VMs, VMware VMs, and Hyper-V VMs to a secondary Azure region continuously.

How do I test a DR plan without affecting production?

Azure Site Recovery has a built-in "Test Failover" feature that spins up replicated VMs in an isolated network in the recovery region without disrupting replication or impacting production. For database DR tests, restore a backup to a new server (not the production server) and verify data integrity and application connectivity. For full DR drills, use Azure Front Door traffic splitting to route a small percentage of traffic to the recovery region and verify it handles load correctly.

Last verified: 19 March 2026 Cloud services change frequently. Verify details against official documentation before making infrastructure decisions.