À propos de la sauvegarde SQL Server sur des machines virtuelles Azure
La sauvegarde Azure offre une solution spécialisée basée sur les flux pour sauvegarder SQL Server quand il s’exécute sur des machines virtuelles Azure. Cette solution s’aligne sur les avantages de la sauvegarde Azure : sauvegarde sans infrastructure, conservation à long terme et gestion centralisée. Elle offre par ailleurs les avantages suivants, en particulier pour SQL Server :
- Sauvegardes de charges de travail prenant en charge tous les types de sauvegarde : complète, différentielle et de fichier journal
- RPO (objectif de point de récupération) de 15 minutes avec des sauvegardes de fichier journal fréquentes
- Récupération jusqu’à une date et heure d’une seconde maximum
- Sauvegarde et restauration des bases de données individuelles
Pour voir les scénarios de sauvegarde et de restauration que nous prenons en charge, consultez la matrice de prise en charge.
Processus de sauvegarde
Cette solution exploite les API natives de SQL pour effectuer des sauvegardes de vos bases de données SQL.
Une fois que vous avez spécifié la machine virtuelle SQL Server que vous voulez protéger et dont vous voulez interroger des bases de données, le service Sauvegarde Azure installe une extension de sauvegarde de charge de travail sur la machine virtuelle nommée
AzureBackupWindowsWorkload
.Cette extension se compose d’un coordinateur et d’un plug-in SQL. Alors que le coordinateur est responsable du déclenchement des flux de travail pour diverses opérations, comme le configuration de la sauvegarde, la sauvegarde et la restauration, le plug-in est responsable du flux de données réel.
Pour pouvoir découvrir les bases de données sur cette machine virtuelle, Sauvegarde Azure crée le compte
NT SERVICE\AzureWLBackupPluginSvc
. Ce compte est utilisé pour la sauvegarde et la restauration. Il doit disposer d’autorisations d’administrateur système SQL. Le compteNT SERVICE\AzureWLBackupPluginSvc
est un compte de service virtuel et ne nécessite donc pas de gestion des mots de passe. Le service de sauvegarde Azure utilise le compteNT AUTHORITY\SYSTEM
pour la découverte et la recherche des bases de données. Ce compte doit donc être une connexion publique sur SQL. Si vous n’avez pas créé la machine virtuelle SQL Server à partir de la Place de marché Azure, il se peut que vous receviez une erreur UserErrorSQLNoSysadminMembership. Si cela se produit, suivez ces instructions.Lorsque vous déclenchez la configuration de la protection sur les bases de données sélectionnées, le service de sauvegarde configure le coordinateur avec les planifications de sauvegarde et d’autres détails de stratégie, ce que l’extension met en cache localement sur la machine virtuelle.
À l’heure planifiée, le coordinateur communique avec le plug-in et démarre le streaming des données de sauvegarde à partir du serveur SQL avec l’infrastructure VDI.
Le plug-in envoie les données directement au coffre Recovery Services, ce qui élimine la nécessité d’un emplacement intermédiaire. Les données sont chiffrées et stockées par le service de Sauvegarde Azure dans des comptes de stockage.
Une fois le transfert de données terminé, le coordinateur confirme la validation avec le service de sauvegarde.
Avant de commencer
Avant de commencer, contrôlez les exigences suivantes :
- Vérifier qu’une instance SQL Server s’exécute dans Azure. Vous pouvez rapidement créer une instance SQL Server dans la Place de marché.
- Consultez les sections Considérations relatives aux fonctionnalités et Prise en charge de scénarios.
- Consulter les questions les plus fréquentes sur ce scénario.
Définir des autorisations de machine virtuelle
Lorsque vous exécutez la découverte sur un serveur SQL Server, Sauvegarde Azure effectue les opérations suivantes :
- Ajoute l’extension AzureBackupWindowsWorkload.
- Crée un compte NT SERVICE\AzureWLBackupPluginSvc pour découvrir les bases de données sur la machine virtuelle. Ce compte est utilisé pour la sauvegarde et la restauration, et doit disposer d’autorisations d’administrateur système SQL.
- Découvre les bases de données en cours d’exécution sur une machine virtuelle ; Sauvegarde Azure utilise le compte NT AUTHORITY\SYSTEM. Ce compte doit être une connexion publique sur SQL.
Si vous n’avez pas créé la machine virtuelle SQL Server dans la Place de marché Azure, ou si vous êtes sur SQL 2008 ou 2008 R2, il se peut que vous receviez une erreur UserErrorSQLNoSysadminMembership.
Pour accorder des autorisations dans le cas de SQL 2008 et 2008 R2 s’exécutant sur Windows 2008 R2, voir ici.
Pour toutes les autres versions, corrigez les autorisations en procédant comme suit :
Utilisez un compte disposant d’autorisations d’administrateur système SQL Server pour vous connecter à SQL Server Management Studio (SSMS). À moins que vous ayez besoin d’autorisations spéciales, l’authentification Windows doit fonctionner.
Sur le serveur SQL Server, ouvrez le dossier Security/Logins.
Cliquez avec le bouton droit sur le dossier Logins et sélectionnez Nouvelle connexion. Dans Nouvelle connexion, sélectionnez Rechercher.
Le compte de service virtuel Windows NT SERVICE\AzureWLBackupPluginSvc a été créé pendant la phase d’inscription de la machine virtuelle et de découverte SQL. Entrez le nom du compte, comme indiqué dans Entrez le nom de l’objet à sélectionner. Sélectionnez Vérifier les noms pour résoudre le nom. Sélectionnez OK.
Dans Rôles du serveur, assurez-vous que le rôle sysadmin (administrateur système) est sélectionné. Sélectionnez OK. Les autorisations requises doivent désormais exister.
À présent, associez la base de données avec le coffre Recovery Services. Dans la liste Serveurs protégés du Portail Azure, cliquez avec le bouton droit sur le serveur en erreur>Redécouvrir les bases de données.
Vérifiez la progression dans la zone Notifications. Lorsque les bases de données sélectionnées ont été détectées, un message de réussite s’affiche.
Notes
Si plusieurs instances de SQL Server sont installées sur votre serveur SQL Server, vous devez ajouter l’autorisation sysadmin du compte NT Service\AzureWLBackupPluginSvc à toutes les instances SQL.
Accorder des autorisations d’administrateur système SQL pour SQL 2008 et SQL 2008 R2
Ajouter des connexions NT AUTHORITY\SYSTEM et NT Service\AzureWLBackupPluginSvc à l’Instance SQL Server :
Accédez à l’Instance SQL Server dans l’Explorateur d’objets.
Accédez à Sécurité -> Connexions
Cliquez avec le bouton droit sur les connexions, puis sélectionnez Nouvelle connexion.
Accédez à l’onglet Général et entrez NT AUTHORITY\SYSTEM en tant que nom de connexion.
Accédez à Rôles de serveur, puis choisissez les rôles public et sysadmin.
Cliquez sur État. Accordez l’autorisation de se connecter au moteur de base de données et de se connecter en tant que Activé.
Sélectionnez OK.
Répétez la même séquence d’étapes (1 à 7 ci-dessus) pour ajouter la connexion NT Service\AzureWLBackupPluginSvc à l’instance SQL Server. Si la connexion existe, assurez-vous qu’elle a le rôle serveur sysadmin et que, sous État, l’autorisation lui est accordée de se connecter au moteur de base de données et de se connecter en tant que Activé.
Une fois l’autorisation octroyée, redécouvrez les bases de données dans le portail : Coffre –> Gérer –> Infrastructure de sauvegarde –> Charge de travail dans une machine virtuelle Azure :
Vous pouvez aussi automatiser l’octroi d’autorisations en exécutant les commandes PowerShell suivantes en mode Administrateur. Le nom d’instance a la valeur MSSQLSERVER par défaut. Modifiez l’argument de nom d’instance dans le script si nécessaire.
param(
[Parameter(Mandatory=$false)]
[string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
$fullInstance = $env:COMPUTERNAME # In case it is the default SQL Server Instance
}
else
{
$fullInstance = $env:COMPUTERNAME + "\" + $InstanceName # In case of named instance
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
try
{
sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
Write-Host "An error occurred:"
Write-Host $_.Exception|format-list -force
}
Configurer des sauvegardes simultanées
Vous pouvez désormais configurer les sauvegardes de manière à enregistrer simultanément les points de récupération et les journaux du serveur SQL dans un espace de stockage local et dans le coffre Recovery Services.
Pour configurer des sauvegardes simultanées, procédez comme suit :
Accédez à l’emplacement
C:\Program Files\Azure Workload Backup\bin\plugins
, puis créez le fichier PluginConfigSettings.json, s’il n’est pas présent.Ajoutez les entités clé-valeur séparées par des virgules, avec les clés
EnableLocalDiskBackupForBackupTypes
etLocalDiskBackupFolderPath
au fichier JSON.Sous
EnableLocalDiskBackupForBackupTypes
, dressez la liste des types de sauvegarde que vous souhaitez stocker localement.Par exemple, si vous souhaitez stocker les sauvegardes complètes et les sauvegardes de journaux, mentionnez
["Full", "Log"]
. Pour stocker uniquement les sauvegardes de journaux, mentionnez["Log"]
.Sous
LocalDiskBackupFolderPath
, mentionnez le chemin d’accès au dossier local. Veillez à utiliser la double barre oblique en mentionnant le chemin d’accès dans le fichier JSON.Par exemple, si le chemin d’accès préféré pour la sauvegarde locale est
E:\LocalBackup
, mentionnez le chemin d’accès dans JSON sous la formeE:\\LocalBackup
.Le JSON final devrait apparaître comme suit :
{ "EnableLocalDiskBackupForBackupTypes": ["Log"], "LocalDiskBackupFolderPath": "E:\\LocalBackup", }
Si le fichier JSON contient d’autres entrées préremplies, ajoutez les deux entrées ci-dessus au bas du fichier JSON, juste avant le crochet fermé.
Pour que les modifications prennent effet immédiatement au lieu de l’heure normale, accédez à TaskManager>Services, faites un clic droit sur AzureWLbackupPluginSvc et sélectionnez Arrêter.
Attention
Cette action annule tous les travaux de sauvegarde en cours.
La convention d’affectation de noms du fichier de sauvegarde stocké et la structure de son dossier seront
{LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}
.Par exemple, si vous avez une base de données
Contoso
sous l’instance SQLMSSQLSERVER
, les fichiers se trouveront dansE:\LocalBackup\MSSQLSERVER\Contoso
.Le nom du fichier est le
VDI device set guid
, qui est utilisé pour l’opération de sauvegarde.Vérifiez si l’emplacement cible sous
LocalDiskBackupFolderPath
dispose des autorisations de lecture et d’écriture pourNT Service\AzureWLBackupPluginSvc
.Remarque
Pour un dossier sur les disques de machine virtuelle locale, faites un clic droit sur le dossier et configurez les autorisations requises pour
NT Service\AzureWLBackupPluginSvc
dans l’onglet Sécurité.Si vous utilisez un réseau ou un partage SMB, configurez les autorisations en exécutant les cmdlets PowerShell ci-dessous à partir d'une console utilisateur qui dispose déjà de l'autorisation d'accéder au partage :
$cred = Get-Credential New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>: -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
Exemple :
$cred = Get-Credential New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y: -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
Étapes suivantes
- En savoir plus sur la sauvegarde de bases de données SQL Server.
- En savoir plus sur la restauration des bases de données SQL Server sauvegardées.
- En savoir plus sur la gestion des bases de données SQL Server sauvegardées.