Back to Blog
3 min read

Azure Backup: Protect Your Data

Azure Backup provides simple, secure backup for Azure and on-premises workloads. VMs, databases, files—all protected from a single interface.

Supported Workloads

WorkloadAgent/Method
Azure VMsAgentless
On-premises VMsMARS agent
SQL ServerBackup extension
SAP HANABackup extension
Azure FilesNative integration
Azure BlobsNative integration

Recovery Services Vault

# Create vault
az backup vault create \
    --name my-backup-vault \
    --resource-group myRG \
    --location eastus

# Enable soft delete
az backup vault backup-properties set \
    --name my-backup-vault \
    --resource-group myRG \
    --soft-delete-feature-state Enable

Azure VM Backup

# Enable backup on VM
az backup protection enable-for-vm \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --vm myVM \
    --policy-name DefaultPolicy

Backup Policies

{
    "name": "DailyBackupPolicy",
    "properties": {
        "backupManagementType": "AzureIaasVM",
        "schedulePolicy": {
            "schedulePolicyType": "SimpleSchedulePolicy",
            "scheduleRunFrequency": "Daily",
            "scheduleRunTimes": ["2020-11-29T02:00:00Z"]
        },
        "retentionPolicy": {
            "retentionPolicyType": "LongTermRetentionPolicy",
            "dailySchedule": {
                "retentionTimes": ["2020-11-29T02:00:00Z"],
                "retentionDuration": {
                    "count": 30,
                    "durationType": "Days"
                }
            },
            "weeklySchedule": {
                "daysOfTheWeek": ["Sunday"],
                "retentionTimes": ["2020-11-29T02:00:00Z"],
                "retentionDuration": {
                    "count": 12,
                    "durationType": "Weeks"
                }
            },
            "monthlySchedule": {
                "retentionScheduleFormatType": "Weekly",
                "retentionScheduleWeekly": {
                    "daysOfTheWeek": ["Sunday"],
                    "weeksOfTheMonth": ["First"]
                },
                "retentionDuration": {
                    "count": 12,
                    "durationType": "Months"
                }
            },
            "yearlySchedule": {
                "retentionScheduleFormatType": "Weekly",
                "monthsOfYear": ["January"],
                "retentionScheduleWeekly": {
                    "daysOfTheWeek": ["Sunday"],
                    "weeksOfTheMonth": ["First"]
                },
                "retentionDuration": {
                    "count": 7,
                    "durationType": "Years"
                }
            }
        }
    }
}

SQL Server Backup

# Register SQL VM
az backup container register \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --backup-management-type AzureWorkload \
    --workload-type MSSQL \
    --container-name "VMAppContainer;Compute;myRG;sqlvm"

# Enable protection
az backup protection enable-for-azurewl \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --policy-name HourlyLogBackup \
    --protectable-item-name "sqldatabase;mssqlserver;mydatabase" \
    --protectable-item-type SQLDataBase \
    --server-name sqlvm \
    --workload-type MSSQL

On-Demand Backup

# Trigger immediate backup
az backup protection backup-now \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --container-name "iaasvmcontainer;iaasvmcontainerv2;myRG;myVM" \
    --item-name myVM \
    --backup-management-type AzureIaasVM \
    --retain-until 2021-01-29

Restore VM

# Get recovery points
az backup recoverypoint list \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --container-name "iaasvmcontainer;iaasvmcontainerv2;myRG;myVM" \
    --item-name myVM \
    --backup-management-type AzureIaasVM

# Restore VM
az backup restore restore-disks \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --container-name "iaasvmcontainer;iaasvmcontainerv2;myRG;myVM" \
    --item-name myVM \
    --rp-name recoverypoint123 \
    --storage-account mystorageaccount \
    --target-resource-group restore-rg

File Recovery

# Mount recovery point as drive
az backup restore files mount-rp \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --container-name "iaasvmcontainer;..." \
    --item-name myVM \
    --rp-name recoverypoint123

# Unmount after copying files
az backup restore files unmount-rp \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --container-name "iaasvmcontainer;..." \
    --item-name myVM \
    --rp-name recoverypoint123

Monitoring

# Check backup jobs
az backup job list \
    --resource-group myRG \
    --vault-name my-backup-vault \
    --output table

Azure Backup: simple protection for complex environments.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.