Sauvegarde automatisée pour les machines virtuelles SQL Server 2014 (Resource Manager)

S’applique à :SQL Server sur la machine virtuelle Azure

La sauvegarde automatisée configure automatiquement une sauvegarde managée sur Microsoft Azure pour toutes les bases de données nouvelles et existantes sur une machine virtuelle Azure exécutant SQL Server 2014 Standard ou Enterprise. Cela vous permet de configurer des sauvegardes régulières de base de données utilisant le stockage Blob Azure durable. La sauvegarde automatisée dépend de l’extension de l’agent d’infrastructure en tant que service (IaaS) SQL Server.

Notes

Azure dispose de deux modèles de déploiement différents grâce auxquels vous pouvez créer et utiliser des ressources : Azure Resource Manager et Classic. Cet article traite de l’utilisation du modèle de déploiement de Resource Manager. Nous vous recommandons le modèle de déploiement Resource Manager pour les nouveaux déploiements, plutôt que le modèle de déploiement classique.

Prérequis

Pour utiliser la sauvegarde automatisée, prenez en compte les conditions préalables suivantes :

Système d’exploitation :

  • Windows Server 2012 et versions ultérieures

Édition/version de SQL Server:

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

Notes

Pour SQL 2016 et versions ultérieures, consultez l’article Sauvegarde automatisée pour les machines virtuelles SQL Server 2016.

Configuration de la base de données:

  • Les bases de données utilisateur cibles doivent utiliser le modèle de récupération complète. Les bases de données système n’ont pas besoin d’utiliser le mode de récupération complète. Toutefois, si vous avez besoin de sauvegardes de fichier journal pour model ou msdb, vous devez utiliser le mode de récupération complète. Pour plus d’informations sur l’impact du modèle de récupération complète sur les sauvegardes, consultez Sauvegarde en mode de récupération complète.
  • La machine virtuelle SQL Server a été inscrite auprès de l’extension d’agent IaaS SQL et la fonctionnalité de sauvegarde automatisée est activée. Comme la sauvegarde automatisée repose sur l’extension, la sauvegarde automatisée est uniquement prise en charge sur les bases de données cibles de l’instance par défaut ou sur une instance nommée unique. S’il n’existe aucune instance par défaut et plusieurs instances nommées, l’extension d’agent IaaS SQL échoue et la sauvegarde automatisée ne fonctionnera pas.

Paramètres

Le tableau suivant décrit les options qui peuvent être configurées pour une sauvegarde automatisée. Les étapes de la configuration varient selon que vous utilisez les commandes du portail Azure ou Azure Windows PowerShell. Notez que la sauvegarde automatisée utilise la compression de sauvegarde par défaut et que vous ne pouvez pas la désactiver.

Paramètre Plage (par défaut) Description
Sauvegarde automatisée Activer/Désactiver (désactivé) Active ou désactive la sauvegarde automatisée d’une machine virtuelle Azure exécutant SQL Server 2014 Standard ou Enterprise.
Période de conservation 1 à 90 jours (90 jours) Nombre de jours durant lesquels une sauvegarde est conservée.
Compte de stockage Compte Azure Storage Compte de stockage Azure à utiliser pour stocker les fichiers de sauvegarde automatisée dans le stockage d’objets blob. Un conteneur est créé à cet emplacement pour stocker tous les fichiers de sauvegarde. La convention de dénomination des fichiers de sauvegarde inclut la date, l’heure et le nom de la machine.
Chiffrement Activer/Désactiver (désactivé) Active ou désactive le chiffrement de sauvegarde. Quand le chiffrement de sauvegarde est activé, les certificats utilisés pour restaurer la sauvegarde se trouvent dans le compte de stockage spécifié dans le même conteneur automaticbackup présentant la même convention de dénomination. Si le mot de passe change, un nouveau certificat est généré avec ce mot de passe, mais l’ancien certificat est conservé pour restaurer les sauvegardes antérieures.
Mot de passe Texte du mot de passe Mot de passe pour les clés de chiffrement. Il est uniquement requis si le chiffrement est activé. Pour restaurer une sauvegarde chiffrée, vous devez disposer du mot de passe correct et du certificat associé qui a été utilisé lorsque la sauvegarde a été effectuée.

Configurer de nouvelles machines virtuelles

Utilisez le portail Azure pour configurer la sauvegarde automatisée quand vous créez une machine virtuelle SQL Server 2014 dans le modèle de déploiement Resource Manager.

Sous l’onglet Paramètres SQL Server, faites défiler vers le bas jusqu’à Sauvegarde automatisée, puis sélectionnez Activer. La capture d’écran suivante du portail Azure montre les paramètres de Sauvegarde automatisée SQL.

Configuration d'une sauvegarde automatisée SQL dans le portail Azure

Configurer des machines virtuelles existantes

Pour les machines virtuelles SQL Server existantes, vous pouvez activer et désactiver les sauvegardes automatisées, modifier la durée de conservation, spécifier le compte de stockage et activer le chiffrement à partir du portail Azure.

Accédez à la ressource Machines virtuelles SQL correspondant à votre machine virtuelle SQL Server 2014, puis sélectionnez Sauvegardes.

Capture d'écran de Sauvegarde automatisée SQL pour les ordinateurs virtuels existants.

Quand vous avez terminé, sélectionnez le bouton Appliquer dans le bas de la page Sauvegardes pour enregistrer vos modifications.

Si vous activez la sauvegarde automatisée pour la première fois, Azure configure l’agent IaaS de SQL Server en arrière-plan. Pendant ce temps, le portail Azure n’indiquera peut-être pas que la sauvegarde automatisée est configurée. Patientez quelques minutes jusqu’à ce que l’agent soit installé et configuré. Le portail Azure reflète alors les nouveaux paramètres.

Notes

Vous pouvez également configurer la sauvegarde automatisée à l’aide d’un modèle. Pour plus d’informations, consultez l’article Azure quickstart template for Automated Backup(Modèle de démarrage rapide d’Azure pour la sauvegarde automatisée).

Configurer avec PowerShell

Vous pouvez utiliser PowerShell pour configurer une sauvegarde automatisée. Avant de commencer, vous devez :

Notes

Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Vérifier les paramètres actuels

Si vous avez activé la sauvegarde automatisée lors de la configuration, vous pouvez utiliser PowerShell pour vérifier votre configuration actuelle. Exécutez la commande Get-AzVMSqlServerExtension et examinez la propriété AutoBackupSettings :

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

La sortie doit ressembler à ce qui suit :

Enable                      : False
EnableEncryption            : False
RetentionPeriod             : -1
StorageUrl                  : NOTSET
StorageAccessKey            : 
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : 
FullBackupFrequency         : 
FullBackupStartTime         : 
FullBackupWindowHours       : 
LogBackupFrequency          : 

Si votre sortie montre que l’option Enable (Activer) est définie sur False, vous devez activer la sauvegarde automatisée. La bonne nouvelle est que vous activez et configurez la sauvegarde automatisée de la même façon. Pour en savoir plus, consultez la section suivante.

Notes

Si vous vérifiez les paramètres immédiatement après une modification, les anciennes valeurs de configuration peuvent s’afficher. Patientez quelques minutes et revérifiez les paramètres pour vous assurer que vos modifications ont bien été appliquées.

Configurer une sauvegarde automatisée

Vous pouvez utiliser PowerShell pour activer la sauvegarde automatisée ainsi que pour modifier sa configuration et son comportement à tout moment.

Tout d’abord, sélectionnez ou créez un compte de stockage pour les fichiers de sauvegarde. Le script suivant sélectionne un compte de stockage ou le crée s’il n’existe pas.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

Notes

La sauvegarde automatisée ne prend pas en charge le stockage des sauvegardes dans un stockage Premium, mais elle peut effectuer des sauvegardes à partir de disques de machines virtuelles qui utilisent le stockage Premium.

Si vous souhaitez utiliser un conteneur personnalisé dans le compte de stockage pour les sauvegardes, utilisez le script suivant pour vérifier la présence du conteneur ou créez-le s’il n’existe pas.

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

Utilisez ensuite le script suivant pour obtenir la clé d’accès au compte de stockage :

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

Utilisez ensuite la commande Update-AzSqlVM pour activer et configurer les paramètres de sauvegarde automatisée afin de stocker les sauvegardes dans le compte de stockage Azure. Dans cet exemple, les sauvegardes sont définies pour être conservées pendant 10 jours.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingStorageContainerName $storage_container 

L’installation et la configuration de l’agent IaaS de SQL Server peuvent prendre plusieurs minutes.

Remarque

Il existe d’autres paramètres pour la commande Update-AzSqlVM qui s’appliquent uniquement à SQL Server 2016 et à la sauvegarde automatisée. SQL Server 2014 ne prend pas en charge les paramètres suivants : -AutoBackupSettingBackupSystemDb, -AutoBackupSettingBackupScheduleType, -AutoBackupSettingFullBackupFrequency, -AutoBackupSettingFullBackupStartTime, -AutoBackupSettingFullBackupWindowHour et -AutoBackupSettingLogBackupFrequency. Si vous essayez de configurer ces paramètres sur une machine virtuelle SQL Server 2014, aucune erreur n’apparaît, mais les paramètres ne sont pas appliqués. Si vous souhaitez utiliser ces paramètres sur une machine virtuelle SQL Server 2016, consultez Sauvegarde automatisée pour les machines virtuelles Azure SQL Server 2016.

Pour activer le chiffrement, modifiez le script précédent pour communiquer le paramètre AutoBackupSettingEnableEncryption associé à un mot de passe (chaîne sécurisée), au paramètre -AutoBackupSettingPassword. Le script suivant active les paramètres de sauvegarde automatisée dans l’exemple précédent et ajoute le chiffrement.

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container 

Pour confirmer que vos paramètres ont été appliqués, vérifiez la configuration de la sauvegarde automatisée.

Désactiver la sauvegarde automatisée

Pour désactiver la sauvegarde automatisée, exécutez le même script avec le paramètre -AutoBackupSettingEnable défini sur $false dans la commande Update-AzSqlVM. En définissant la valeur sur $false, la fonctionnalité est désactivée. À l’instar de l’installation, la désactivation de la sauvegarde automatisée peut prendre plusieurs minutes.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

Exemple de script

Le script suivant fournit un ensemble de variables que vous pouvez personnaliser afin d’activer et de configurer la sauvegarde automatisée pour votre machine virtuelle. Dans votre cas, vous devrez peut-être personnaliser le script selon vos besoins. Par exemple, vous devrez apporter des modifications si vous souhaitez désactiver la sauvegarde des bases de données système ou activer le chiffrement.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingStorageContainerName $storage_container 

Sauvegarde avec des certificats de chiffrement

Si vous décidez de chiffrer vos sauvegardes, un certificat de chiffrement est généré et enregistré dans le même compte de stockage que les sauvegardes. Dans ce scénario, vous devez également saisir un mot de passe qui sera utilisé pour protéger les certificats de chiffrement utilisés pour chiffrer et déchiffrer vos sauvegardes. Cette protection vous permet de ne pas être inquiet au sujet de vos sauvegardes au-delà de la configuration de cette caractéristique, et vous garantit également que vos sauvegardes sont sécurisées.

Lorsque le chiffrement de sauvegarde est activé, nous vous recommandons vivement de déterminer si le certificat de chiffrement a été correctement créé et chargé pour garantir la restauration de vos bases de données. Vous pouvez le faire en créant immédiatement une base de données et en vérifiant que les certificats de chiffrement et les données ont été correctement sauvegardés dans le conteneur nouvellement créé. Cette option montre que tout a été configuré correctement et qu'aucune anomalie n'a eu lieu.

Si le certificat n'a pas pu être chargé pour une raison quelconque, vous pouvez utiliser le gestionnaire de certificat pour exporter le certificat et l'enregistrer. Toutefois, vous ne souhaitez pas l'enregistrer sur le même ordinateur virtuel, car cela ne garantit pas que vous avez accès au certificat lorsque l'ordinateur virtuel est en panne. Pour savoir si le certificat a été sauvegardé correctement après modification ou création de la configuration de Sauvegarde automatisée, vous pouvez vérifier les journaux des événements dans l'ordinateur virtuel, et en cas d'échec, vous verrez ce message d'erreur :

Capture d'écran présentant le message d'erreur dans le journal d'événements dans l'ordinateur virtuel.

Si les certificats ont été sauvegardés correctement, ce message s'affiche dans les journaux d'événements :

Capture d'écran de la sauvegarde réussie du certificat de chiffrement dans les journaux d'événements.

En règle générale, il est recommandé de vérifier de temps en temps l'état de vos sauvegardes. Pour pouvoir restaurer vos sauvegardes, procédez comme suit :

  1. Confirmez que vos certificats de chiffrement ont été sauvegardés et que vous vous souvenez de votre mot de passe. Si vous ne le faites pas, vous ne pourrez pas déchiffrer et restaurer vos sauvegardes. Si, pour une raison quelconque, vos certificats n'ont pas été correctement sauvegardés, vous pouvez effectuer cette opération manuellement en exécutant la requête T-SQL suivante :

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. Vérifiez que vos fichiers de sauvegarde sont chargés avec au moins 1 sauvegarde complète. Les erreurs pouvant survenir, vous devez vous assurer de toujours disposer d'au moins une sauvegarde complète avant de supprimer votre ordinateur virtuel, ou au cas où votre ordinateur virtuel serait endommagé, afin de savoir si vous pouvez toujours accéder à vos données. Vous devez vous assurer que la sauvegarde dans le stockage est sécurisée et récupérable avant de supprimer les disques de données de votre ordinateur virtuel.

Surveillance

Pour monitorer la sauvegarde automatisée sur SQL Server 2014, deux options s’offrent à vous. Étant donné que la sauvegarde automatisée utilise la fonctionnalité de sauvegarde gérée de SQL Server, les mêmes techniques de surveillance s’appliquent.

Vous pouvez d’abord interroger l’état en appelant msdb.smart_admin.sp_get_backup_diagnostics. Vous pouvez aussi interroger la fonction table msdb.smart_admin.fn_get_health_status.

Notes

Dans SQL Server 2014, le schéma de gestion de sauvegarde est msdb.smart_admin. Dans SQL Server 2016, il est remplacé par msdb.managed_backup, et les rubriques de référence utilisent ce schéma plus récent. Mais pour SQL Server 2014, vous devez continuer à utiliser le schéma smart_admin pour tous les objets de gestion de sauvegarde.

Une autre possibilité consiste à tirer parti de la fonctionnalité intégrée de messagerie de base de données pour les notifications.

  1. Appelez la procédure stockée msdb.smart_admin.sp_set_parameter pour affecter une adresse e-mail au paramètre SSMBackup2WANotificationEmailIds.
  2. Activez SendGrid pour envoyer les e-mails à partir de la machine virtuelle Azure.
  3. Utilisez le nom d’utilisateur et le serveur SMTP pour configurer la messagerie de base de données. Vous pouvez configurer la messagerie de base de données dans SQL Server Management Studio ou à l’aide de commandes Transact-SQL. Pour plus d’informations, consultez Messagerie de base de données.
  4. Configurez SQL Server Agent pour qu’il utilise la messagerie de base de données.
  5. Vérifiez que le port SMTP est autorisé dans le pare-feu local de la machine virtuelle et le groupe de sécurité réseau pour la machine virtuelle.

Étapes suivantes

La sauvegarde automatisée configure une sauvegarde managée sur les machines virtuelles Azure. Il est donc important de passer en revue la documentation relative à la gestion de sauvegarde sur SQL Server 2014.

Vous trouverez des conseils supplémentaires pour la sauvegarde et la restauration de SQL Server sur les machines virtuelles Azure dans l'article suivant : Sauvegarde et restauration pour SQL Server sur des machines virtuelles Azure.

Pour plus d’informations sur les autres tâches d’automatisation disponibles, voir Extension de l’agent IaaS SQL Server.

Pour plus d’informations sur l’exécution de SQL Server sur des machines virtuelles Azure, consultez Vue d’ensemble de SQL Server sur les machines virtuelles Azure.