Résoudre les problèmes de sauvegarde des bases de données SQL Server avec Sauvegarde Azure
Cet article fournit des informations de dépannage pour les bases de données SQL Server s’exécutant sur des machines virtuelles Azure.
Pour plus d’informations sur le processus et les limitations de la sauvegarde, consultez À propos de la sauvegarde SQL Server sur des machines virtuelles Azure.
Autorisations SQL Server
Pour configurer la protection d’une base de données SQL Server sur une machine virtuelle, vous devez installer l’extension AzureBackupWindowsWorkload sur cette machine virtuelle. Si vous recevez l’erreur UserErrorSQLNoSysadminMembership, cela signifie que votre instance SQL Server n’a pas les autorisations de sauvegarde nécessaires. Pour corriger cette erreur, suivez les étapes décrites dans Définir des autorisations de machine virtuelle.
Résoudre les problèmes de découverte et de configuration
Quand la création et la configuration d’un coffre Recovery Services sont terminées, le processus de découverte de bases de données et de configuration de la sauvegarde se fait en deux étapes.
Pendant la configuration de la sauvegarde, si la machine virtuelle SQL et ses instances ne sont pas visibles dans les bases de données de détection dans les machines virtuelles et dans Configurer la sauvegarde (voir l’image ci-dessus), assurez-vous que :
Étape 1 : Bases de données de détection dans les machines virtuelles
- Si la machine virtuelle n’est pas listée dans la liste des machines virtuelles découvertes et qu’elle n’est pas inscrite pour la sauvegarde SQL dans un autre coffre, suivez les étapes de la sauvegarde SQL Server de découverte.
Étape 2 : Configurez une sauvegarde
- Si le coffre dans lequel la machine virtuelle SQL est inscrite est le même coffre que celui utilisé pour protéger les bases de données, suivez les étapes Configurer la sauvegarde.
Si la machine virtuelle SQL doit être inscrite dans le nouveau coffre, elle doit être désinscrite de l’ancien coffre. Pour désinscrire une machine virtuelle SQL du coffre, vous devez arrêter toutes les sources de données protégées. Ensuite, vous pourrez supprimer les données sauvegardées. La suppression des données sauvegardées est une opération destructrice. Une fois que vous avez passé en revue et pris toutes les précautions nécessaires pour annuler l’inscription de la machine virtuelle SQL, inscrivez cette même machine virtuelle auprès d’un nouveau coffre et réessayez l’opération de sauvegarde.
Résoudre les problèmes de sauvegarde et de récupération
Dans certains cas, des échecs aléatoires peuvent se produire lors d’opérations de sauvegarde et de restauration, ou ces opérations peuvent être bloquées. Cela peut être dû aux programmes antivirus de votre machine virtuelle. Nous vous suggérons d’appliquer la bonne pratique suivante :
Excluez les dossiers suivants de l’analyse antivirus :
C:\Program Files\Azure Workload Backup
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload
Remplacez
C:\
par la lettre de votre lecteur système.Excluez de l’analyse antivirus les trois processus suivants qui s’exécutent sur la machine virtuelle :
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
SQL fournit également des instructions sur l’utilisation de programmes antivirus. Pour plus d’informations, consultez cet article.
Instance défectueuse dans une machine virtuelle comportant plusieurs instances de SQL Server
Vous pouvez effectuer une restauration sur une machine virtuelle SQL uniquement si toutes les instances SQL en cours d’exécution dans la machine virtuelle sont signalées comme étant saines. Si une ou plusieurs instances sont « défectueuses », la machine virtuelle n’apparaît pas en tant que cible de restauration. Il s’agit donc d’une des raisons pour lesquelles une machine virtuelle multi-instance n’apparaît pas dans la liste déroulante « serveur » durant l’opération de restauration.
Vous pouvez valider la « préparation à la sauvegarde » de toutes les instances SQL de la machine virtuelle sous Configurer la sauvegarde :
Pour déclencher une restauration sur les instances SQL saines, effectuez les étapes suivantes :
Connectez-vous à la machine virtuelle SQL, puis accédez à
C:\Program Files\Azure Workload Backup\bin
.Créez un fichier JSON nommé
ExtensionSettingsOverrides.json
(s’il n’est pas déjà présent). Si ce fichier est déjà présent sur la machine virtuelle, continuez à l’utiliser.Ajoutez le contenu suivant au fichier JSON, puis enregistrez ce dernier :
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
Déclenchez l’opération de redécouverte des bases de données sur le serveur impacté à partir du portail Azure (l’emplacement où la préparation à la sauvegarde est visible). La machine virtuelle apparaît en tant que cible des opérations de restauration.
Supprimez l’entrée whitelistedInstancesForInquiry du fichier ExtensionSettingsOverrides.json, une fois l’opération de restauration effectuée.
Messages d’erreur
Type de sauvegarde non pris en charge
severity | Description | Causes possibles | Action recommandée |
---|---|---|---|
Avertissement | Les paramètres actuels de cette base de données ne prennent pas en charge certains types de sauvegarde présents dans la stratégie associée. | Modifiez les paramètres de la base de données pour que tous les types de sauvegarde de la stratégie soient pris en charge. Vous pouvez aussi changer la stratégie actuelle pour y inclure seulement les types de sauvegarde pris en charge. Sinon, les types de sauvegarde non pris en charge sont ignorés lors de la sauvegarde planifiée ou le travail de sauvegarde échoue pour une sauvegarde à la demande. |
UserErrorSQLPODoesNotSupportBackupType
Message d’erreur | Causes possibles | Action recommandée |
---|---|---|
Cette base de données SQL ne supporte pas le type de sauvegarde demandé. | Se produit lorsque le mode de récupération de la base de données n’autorise pas le type de sauvegarde demandé. L’erreur peut se produire dans les situations suivantes :
|
Si la sauvegarde de fichier journal échoue pour la base de données en mode de récupération simple, essayez une des options suivantes :
|
OperationCancelledBecauseConflictingOperationRunningUserError
Message d’erreur | Causes possibles | Action recommandée |
---|---|---|
Operation canceled as a conflicting operation was already running on the same database. (Opération annulée car une opération conflictuelle était déjà en cours d’exécution sur la même base de données.) | Cette erreur est susceptible de se produire lorsque le travail de sauvegarde déclenché à la demande ou planifié est en conflit avec une opération de sauvegarde déjà en cours d’exécution, déclenchée par l’extension Sauvegarde Azure sur la même base de données. Ce code d’erreur est susceptible d’apparaître dans les cas suivants :
|
Après l’échec de l’opération en conflit, recommencez l’opération. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Les opérations de manipulation des fichiers de sauvegarde (telles que ALTER DATABASE ADD FILE) et les modifications apportées au chiffrement d’une base de données doivent être sérialisées. | Ce code d’erreur est susceptible d’apparaître dans les cas suivants :
|
Désactivez l’autre produit de sauvegarde pour résoudre le problème. |
UserErrorSQLPODoesNotExist
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
La base de données SQL n’existe pas. | La base de données a été supprimée ou renommée. | Vérifiez si la base de données a été supprimée ou renommée par inadvertance. Si la base de données a été supprimée par inadvertance, restaurez la base de données à l’emplacement d’origine pour poursuivre les sauvegardes. Si vous avez supprimé la base de données et si vous n’avez pas besoin de sauvegardes ultérieures, dans le coffre Recovery Services, sélectionnez Arrêter la sauvegarde avec Conserver les données de sauvegarde ou Supprimer les données de sauvegarde. Pour plus d’informations, consultez Gérer et surveiller des bases de données SQL Server sauvegardées. |
UserErrorSQLLSNValidationFailure
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Log chain is broken. (La séquence de journaux de transactions consécutifs est altérée.) | La base de données ou la machine virtuelle est sauvegardée via une autre solution de sauvegarde, ce qui tronque la séquence de journaux de transactions consécutifs. |
|
UserErrorOpeningSQLConnection
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
La Sauvegarde Azure n’est pas en mesure de se connecter à l’instance SQL. | Sauvegarde Azure ne peut pas se connecter à l’instance SQL Server. | Utilisez les informations supplémentaires disponibles sur le menu des erreurs du portail Azure pour déterminer les causes racines. Consultez Résoudre les problèmes de connexion au moteur de base de données SQL Server pour corriger l’erreur.
|
UserErrorParentFullBackupMissing
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
First full backup is missing for this data source. (La première sauvegarde complète est manquante pour cette source de données.) | La sauvegarde complète est manquante pour la base de données. Les sauvegardes différentielles et de fichier journal sont apparentées à une sauvegarde complète : veillez donc à effectuer des sauvegardes complètes avant de déclencher des sauvegardes différentielles ou de fichier journal. | Déclenchez une sauvegarde complète à la demande. |
UserErrorBackupFailedAsTransactionLogIsFull
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Impossible d’effectuer une sauvegarde car le journal des transactions de la source de données est plein. | L’espace dédié au journal des transactions de la base de données est plein. | Pour résoudre ce problème, reportez-vous à la documentation SQL Server. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Database with same name already exists at the target location (Une base de données portant le même nom existe déjà dans l’emplacement cible) | La destination de restauration cible a déjà une base de données portant le même nom. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Restore failed as the database could not be brought offline. (Échec de la restauration car la base de données n’a pas pu être mise hors connexion.) | Pendant que vous effectuez une restauration, la base de données cible doit être mise hors connexion. Sauvegarde Azure ne peut pas mettre ces données hors connexion. | Utilisez les informations supplémentaires disponibles sur le menu des erreurs du portail Azure pour déterminer les causes racines. Pour plus d’informations, consultez la documentation SQL Server. |
WlExtGenericIOFaultUserError
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Une erreur d’entrée/de sortie s’est produite durant l’opération. Recherchez les erreurs d’E/S courantes sur la machine virtuelle. | Autorisations d’accès ou contraintes d’espace sur la cible. | Recherchez les erreurs d’E/S courantes sur la machine virtuelle. Vérifiez que le lecteur/partage réseau cible sur l’ordinateur : Pour plus d’informations, consultez Restaurer sous forme de fichiers. |
UserErrorCannotFindServerCertificateWithThumbprint
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Cannot find the server certificate with thumbprint on the target. (Impossible de trouver le certificat de serveur avec l’empreinte sur la cible.) | La base de données master sur l’instance de destination n’a pas une empreinte de chiffrement valide. | Importez l’empreinte de certificat valide utilisée sur l’instance source vers l’instance cible. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
La sauvegarde de fichier journal utilisée pour la récupération contient des modifications journalisées en bloc. Elle n’est pas utilisable pour s’arrêter à un point arbitraire dans le temps conformément aux directives SQL. | Quand une base de données est en mode de récupération avec journalisation en bloc, les données entre une transaction journalisée en bloc et la transaction de journal suivante ne peuvent pas être récupérées. | Choisissez un autre point de récupération dans le temps. Plus d’informations |
FabricSvcBackupPreferenceCheckFailedUserError
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Backup preference for SQL Always On Availability Group cannot be met as some nodes of the Availability Group are not registered. (Les préférences de sauvegarde pour le groupe de disponibilité Always On ne peuvent pas être respectées car certains nœuds du groupe de disponibilité ne sont pas inscrits.) | Les nœuds requis pour effectuer des sauvegardes ne sont pas inscrits ou sont inaccessibles. |
|
VMNotInRunningStateUserError
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
SQL server VM is either shutdown and not accessible to Azure Backup service. (La machine virtuelle SQL Server est arrêtée ou indisponible pour le service Sauvegarde Azure.) | La machine virtuelle est arrêtée. | Vérifiez que l’instance SQL Server est en cours d’exécution. |
GuestAgentStatusUnavailableUserError
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
Azure Backup service uses Azure VM guest agent for doing backup but guest agent is not available on the target server. (Le service Sauvegarde Azure utilise l’agent invité de machine virtuelle Azure pour effectuer la sauvegarde, mais l’agent invité n’est pas disponible sur le serveur cible.) | L’agent invité n’est pas activé ou n’est pas sain. | Installez l’agent invité de machine virtuelle manuellement. |
AutoProtectionCancelledOrNotValid
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
L’intention de protection automatique a été supprimée ou n’est pas plus valide. | Quand vous activez la protection automatique sur une instance SQL Server, les travaux Configurer la sauvegarde s’exécutent pour toutes les bases de données de cette instance. Si vous désactivez la protection automatique pendant l’exécution des tâches, les tâches En cours sont annulées avec ce code d’erreur. | Réactivez la protection automatique pour protéger toutes les bases de données restantes. |
CloudDosAbsoluteLimitReached
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
L’opération est bloquée, car vous avez atteint la limite du nombre d’opérations autorisées en 24 heures. | Lorsque vous avez atteint la limite maximale autorisée pour une opération dans une plage de 24 heures, cette erreur s’affiche. Par exemple : Si vous avez atteint la limite du nombre de tâches de sauvegarde de configuration qui peuvent être déclenchées par jour et que vous essayez de configurer la sauvegarde sur un nouvel élément, cette erreur s’affiche. |
En règle générale, le fait de retenter l’opération après 24 heures résout ce problème. Toutefois, si le problème persiste, vous pouvez contacter le support technique Microsoft pour obtenir de l’aide. |
CloudDosAbsoluteLimitReachedWithRetry
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
L’opération est bloquée, car le coffre a atteint sa limite maximale pour ces opérations autorisées dans une plage de 24 heures. | Lorsque vous avez atteint la limite maximale autorisée pour une opération dans une plage de 24 heures, cette erreur s’affiche. Cette erreur s’affiche généralement en cas d’opérations à grande échelle, comme une modification de la stratégie ou la protection automatique. Contrairement au cas de CloudDosAbsoluteLimitReached, il n’y a pas grand-chose à faire pour résoudre cet état. En fait, le service de sauvegarde Azure réessaiera les opérations en interne pour tous les éléments en question. Par exemple : si vous avez un grand nombre de sources de données protégées par une stratégie et que vous essayez de modifier cette stratégie, des tâches de protection de configuration sont déclenchées pour chaque élément protégé et peuvent parfois atteindre la limite maximale autorisée pour de telles opérations par jour. |
Le service Sauvegarde Azure réessaiera automatiquement cette opération après 24 heures. |
WorkloadExtensionNotReachable
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
L’opération d’extension de la charge de travail AzureBackup a échoué. | La machine virtuelle est arrêtée ou elle ne peut pas contacter le service Azure Backup en raison de problèmes de connectivité Internet. |
UserErrorVMInternetConnectivityIssue
Message d’erreur | Causes possibles | Actions recommandées |
---|---|---|
La machine virtuelle ne peut pas contacter le service Sauvegarde Azure en raison de problèmes de connectivité Internet. | Cause 1 : la machine virtuelle a besoin d’une connectivité sortante vers le service Sauvegarde Azure, Stockage Azure ou les services Microsoft Entra. Cause 2 : une stratégie d’objet de stratégie de groupe (GPO) limite les suites de chiffrement requises pour la communication TLS. |
Recommandation pour la cause 1 : Recommandation pour la cause 2 : supprimez la machine virtuelle de l’objet de stratégie de groupe ou désactivez/supprimez la stratégie d’objet de stratégie de groupe comme solution de contournement. Vous pouvez aussi modifier l’objet de stratégie de groupe de telle façon qu’il autorise les suites de chiffrement requises. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Message d’erreur | Cause probable | Action recommandée |
---|---|---|
La sauvegarde de bases de données participant à une session de mise en miroir de bases de données n’est pas prise en charge par AzureWorkloadBackup. | Lorsque vous activez l’opération de mise en miroir sur une base de données SQL, cette erreur s’affiche. Sauvegarde Azure ne prend pas encore en charge les bases de données avec cette fonctionnalité activée. | Vous pouvez supprimer la session de mise en miroir de bases de données afin que l’opération s’effectue correctement. Sinon, si la base de données est déjà protégée, arrêtez l’opération de sauvegarde de la base de données. |
UserErrorWindowsWLExtFailedToStartPluginService
Message d’erreur | Cause possible | Recommandation |
---|---|---|
Échec de l’opération avec une erreur UserErrorWindowsWLExtFailedToStartPluginService . |
L’extension de charge de travail Sauvegarde Azure ne peut pas démarrer le service de plug-in de sauvegarde de charge de travail sur la machine virtuelle Azure en raison d’une configuration incorrecte du compte de service. | Étape 1 : Vérifiez si l’utilisateur NT Service\AzureWLBackupPluginSvc dispose des autorisations en Lecture sur : – C:\windows\Microsoft.NET \assembly\GAC_32 – C:\windows\Microsoft.NET \assembly\GAC_64 – C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. Si les autorisations sont manquantes, attribuez des autorisations en Lecture sur ces répertoires. Étape 2 : Vérifiez si NT Service\AzureWLBackupPluginSvc dispose des droits Outrepasser le contrôle de parcours en accédant à Stratégie de sécurité locale>Attribution des droits utilisateur>Outrepasser le contrôle de parcours. L’option Tout le monde doit être sélectionnée par défaut. Si Tout le monde et NT Service\AzureWLBackupPluginSvc sont manquants, ajoutez un utilisateur NT Service\AzureWLBackupPluginSvc, puis essayez de redémarrer le service ou de déclencher une opération de sauvegarde ou de restauration pour une source de données. |
Échecs de réinscription
Vérifiez la présence d’un ou plusieurs des symptômes suivants avant de déclencher l’opération de réinscription :
Toutes les opérations (comme la sauvegarde, la restauration et la configuration de la sauvegarde) échouent sur la machine virtuelle avec un des codes d’erreur suivants : WorkloadExtensionNotReachable , UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.
Si la zone de l’État de la sauvegarde de l’élément de sauvegarde affiche Inaccessible, excluez toutes les autres causes susceptibles d’entraîner le même état :
- absence d’autorisation pour effectuer les opérations liées à la sauvegarde sur la machine virtuelle ;
- Arrêt de la machine virtuelle, de sorte que les sauvegardes ne peuvent pas avoir lieu.
- Problèmes de réseau
Avec un groupe de disponibilité Always On, les sauvegardes échouent après la modification d’une préférence de sauvegarde ou après un basculement.
Ces symptômes peuvent survenir pour une ou plusieurs des raisons suivantes :
- Une extension a été supprimée ou désinstallée sur le portail.
- Une extension a été désinstallée depuis le Panneau de configuration de la machine virtuelle sous Désinstaller ou modifier un programme.
- La machine virtuelle a été restaurée à un point dans le temps via une restauration de disques sur place.
- La machine virtuelle a été arrêtée pendant une période prolongée, entraînant l’expiration de la configuration d’extension qui s’y trouvait.
- La machine virtuelle a été supprimée et une autre machine virtuelle a été créée avec le même nom et le même groupe de ressources que la machine virtuelle supprimée.
- Un des nœuds du groupe de disponibilité n’a pas reçu la configuration de sauvegarde complète. Ceci peut se produire quand le groupe de disponibilité est inscrit dans le coffre ou quand un nouveau nœud est ajouté.
Dans les scénarios précédents, nous vous recommandons de déclencher une opération de réinscription sur la machine virtuelle. Pour savoir comment effectuer cette tâche dans PowerShell, cliquez ici.
Limite de taille pour les fichiers
La taille totale de la chaîne de fichiers dépend non seulement du nombre de fichiers, mais aussi de leurs noms et de leurs chemins. Obtenez le nom de fichier logique et le chemin physique de chacun des fichiers de base de données. Vous pouvez utiliser cette requête SQL :
SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
Réorganisez-les à présent selon le format suivant :
[{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]
Voici un exemple :
[{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]
Si la taille de la chaîne du contenu dépasse 20 000 octets, les fichiers de base de données sont stockés différemment. Pendant la récupération, vous ne pouvez pas définir le chemin du fichier cible pour la restauration. Les fichiers sont restaurés dans le chemin SQL par défaut fourni par SQL Server.
Remplacer le chemin de fichier de restauration cible par défaut
Vous pouvez remplacer le chemin du fichier de restauration cible pendant l’opération de restauration en plaçant un fichier JSON contenant le mappage du fichier de base de données au chemin de restauration cible. Créez un fichier database_name.json
et placez-le à l’emplacement C:\Program Files\Azure Workload Backup\bin\plugins\SQL*
.
Le contenu du fichier doit être à ce format :
[
{
"Path": "<Restore_Path>",
"LogicalName": "<LogicalName>",
"IsDir": "false"
},
{
"Path": "<Restore_Path>",
"LogicalName": "LogicalName",
"IsDir": "false"
},
]
Voici un exemple :
[
{
"Path": "F:\\Data\\testdb2_1546408741449456.mdf",
"LogicalName": "testdb7",
"IsDir": "false"
},
{
"Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
"LogicalName": "testdb7_log",
"IsDir": "false"
},
]
Dans le contenu précédent, vous pouvez obtenir le nom logique du fichier de base de données avec la requête SQL suivante :
SELECT mf.name AS LogicalName FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
Ce fichier doit être placé avant de déclencher l’opération de restauration.
Étapes suivantes
Pour plus d’informations sur les machines virtuelles Azure Backup pour SQL.