(Erreur résolue) La restauration de la base de données SQL a échoué, la base de données est utilisée

Summary: Ce blog décrira les solutions pour corriger l'erreur 'SQL database restore failed, database in use'. Ces solutions comprennent la déconnexion des connexions actives (utilisateurs et processus) à la base de données et l'utilisation du logiciel Stellar Toolkit for MS SQL pour récupérer la base de données SQL (db) à partir d'un fichier db ou de sauvegarde (.bak) corrompu. Les solutions s'appliquent à MS SQL Server 2019, 2017, 2016, 2014 et aux versions inférieures.

Lorsque vous essayez de restaurer une base de données SQL Server à partir d’une sauvegarde, il est courant de recevoir un message d’erreur qui se lit comme suit:

Echec de la restauration pour le serveur ?xxx? (Microsoft.SqlServer.SmoExtended)

Informations complémentaires: System.Data.SqlClient.SqlError: L’accès exclusif n’a pas pu être obtenu car la base de données est en cours d’utilisation.

Raisons de l’erreur “La restauration de la base de données SQL a échoué, la base de données est utilisée”

Voici quelques raisons qui peuvent interférer avec le processus de restauration et provoquer l’erreur “La restauration de la base de données a échoué car la base de données est en cours d’utilisation?.

Maintenant, nous allons discuter des solutions pour réparer cette erreur.

Conseil: La base de données SQL Server peut être restaurée à partir du fichier de sauvegarde (.bak). Mais, l’opération de restauration de la base de données peut échouer si le fichier .bak est corrompu. Utilisez le logiciel Stellar Toolkit for MS SQL qui est livré avec un outil d’extraction de sauvegarde SQL efficace conçu pour aider les administrateurs de bases de données à récupérer une base de données SQL à partir d’un fichier de sauvegarde (.BAK) corrompu. Le logiciel supports SQL Server 2019, 2017, 2016, 2014, 2012, et les anciennes versions.

Avant de commencer

Avant de procéder à la résolution de l’erreur – l’accès exclusif n’a pas pu être obtenu car la base de données est en cours d’utilisation, assurez-vous de remplir les conditions préalables suivantes:

Comment résoudre le problème “Impossible de restaurer la base de données SQL car elle est en cours d’utilisation”?

Lorsque vous tentez de restaurer une base de données du serveur SQL, assurez-vous qu’il n’y a pas de connexions actives. Si quelqu’un utilise la base de données, l’opération de restauration échouera. Pour résoudre ce problème, vous devez déconnecter les utilisateurs actifs. Vous pouvez le faire en suivant l’une des méthodes suivantes:

REMARQUE: Avant de déconnecter les utilisateurs, utilisez la procédure stockée SQL ‘sp_who’ pour vérifier tous les utilisateurs qui utilisent actuellement la base de données. Si vous trouvez des utilisateurs qui effectuent des tâches importantes, informez-les avant de les déconnecter. Pour des informations détaillées sur sp_who, référez-vous à ce lien. Si vous ne voulez pas notifier les utilisateurs, passez à la méthode 2.

Méthode 1 – Fermer les connexions existantes à la base de données

Pour fermer les connexions existantes à SQL db, suivez les étapes suivantes:

Étape 1: Ouvrez SSMS et connectez-vous à la base de données.

Étape 2: Après s’être connecté à la base de données, le panneau de Object Explorer apparaît sur le côté gauche de la fenêtre SSMS.

Étape 3: Dans le panneau Object Explorer, cliquez avec le bouton droit de la souris sur Bases de données, puis sélectionnez Restore Database.

Étape 4: Dans la boîte de dialogue Restore Database, procédez comme suit:

Étape 5: Dans la page Options, cochez la case “fermer les connexions existantes à la base de données de destination?.

Une fois les connexions au serveur SQL fermées, procédez à l’opération de restauration.

Méthode 2 – Passage du mode multi-utilisateur au mode mono-utilisateur

Le passage du mode multi-utilisateurs par défaut au mode mono-utilisateur déconnectera tous les utilisateurs connectés. Cette option peut être utilisée si vous souhaitez déconnecter tous les utilisateurs sans les avertir.

Pour forcer les utilisateurs à se mettre hors ligne (c’est-à-dire à se déconnecter) de SQL Server, faites passer le db du mode multi-utilisateurs au mode mono-utilisateur en suivant les étapes suivantes:

Étape 1: Ouvrez SSMS, connectez-vous à la base de données.

Étape 2: Dans la fenêtre de Object Explorer, sélectionnez New Query. Copiez et collez l’extrait de code T-SQL ci-dessous dans la fenêtre de requête, puis cliquez sur Execute:

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

L’exécution du code ci-dessus fera passer la base de données en mode mono-utilisateur.

Méthode 3 – Redémarrer le service SQL Server

Vous pouvez également déconnecter les utilisateurs en redémarrant le service SQL. Vous pouvez redémarrer le service en utilisant SQL Server Configuration Manager, SSMS, la console des services ou la ligne de commande.

REMARQUE: Utilisez cette méthode en dernier recours. En effet, vous pouvez n’avoir besoin de restaurer qu’une seule base de données, mais le redémarrage du serveur interrompra les connexions à toutes les bases de données.

Les étapes pour redémarrer le service à partir de SQL Server Configuration Manager sont les suivantes:

Étape 1: Parcourez SQL Server Configuration Manager en utilisant l’un des chemins suivants:

SQL Server 2019              C:\Windows\SysWOW64\SQLServerManager15.msc

SQL Server 2017              C:\Windows\SysWOW64\SQLServerManager14.msc

SQL Server 2016              C:\Windows\SysWOW64\SQLServerManager13.msc

SQL Server 2014              C:\Windows\SysWOW64\SQLServerManager12.msc

SQL Server 2012              C:\Windows\SysWOW64\SQLServerManager11.msc

Étape 2: Dans le volet gauche de la fenêtre SQL Server Configuration Manager, cliquez sur SQL Server Services. Et dans le volet de droite, cliquez avec le bouton droit de la souris sur le service SQL Server, puis arrêtez-le et démarrez-le.

Étape 3: Cliquez sur OK pour quitter SQL Server Configuration Manager.

Et si le problème persiste?

Si le problème persiste, il y a probablement un problème avec votre base de données ou le fichier de sauvegarde, utilisé pour restaurer la base de données, est corrompu. Dans ce cas, utilisez Stellar Toolkit for MS SQL. Le logiciel peut récupérer une base de données à partir d’un serveur SQL corrompu. Il peut également extraire une base de données – à partir de fichiers de sauvegarde (.bak) corrompus – qui doivent être restaurés.

Le logiciel Stellar Toolkit for MS SQL peut également vous aider à réinitialiser les mots de passe administrateur et utilisateur de SQL Server perdus ou oubliés. Vous pouvez lire la revue du logiciel ici.

Pour restaurer une base de données à partir d’un fichier de sauvegarde (.bak) corrompu de SQL Server en utilisant le logiciel, suivez ces étapes:

Étape 1: Télécharger, installer et lancer le logiciel Stellar Toolkit for MS SQ.

Étape 2: Dans l’interface utilisateur du logiciel, sélectionnez Extraire de la sauvegarde MS SQL.

Étape 3: Dans la fenêtre Stellar Backup Extractor for MS SQL, cliquez sur Select File pour choisir le fichier .bak.

REMARQUE: Choisissez l’option “Rechercher dans le dossier”, si vous ne connaissez pas l’emplacement du fichier.

Étape 4: Après avoir sélectionné le fichier .bak, cliquez sur Scan.

Étape 5: La fenêtre BackupSet apparaît avec les détails de toutes les sauvegardes.

Étape 6: Choisissez le fichier .bak que vous souhaitez récupérer dans la liste Backup Type, puis cliquez sur Next pour poursuivre le processus d’analyse.

Étape 7: Une fois le balayage terminé, une boîte de dialogue apparaît et indique le nombre total d’enregistrements disponibles dans le fichier de sauvegarde.

Étape 8: Le logiciel affiche un aperçu des enregistrements de la base de données.

Étape 9: Pour enregistrer le fichier .bak récupéré, cliquez sur Save dans le menu File.

Étape 10: Dans la fenêtre qui s’affiche, choisissez MSSQL sous Save As, puis cliquez sur Browse pour sélectionner l’emplacement où enregistrer le fichier récupéré. Cliquez sur OK.

Étape 11: Choisissez New Database ou Live Database sous Saving Options. Ensuite, indiquez les détails requis dans la section Connecter au serveur, puis cliquez sur Connect.

Étape 12: Cliquez sur OK lorsque le message ” Processus de récupération terminé avec succès ” apparaît.

Le fichier récupéré sera enregistré dans l’emplacement sélectionné.

Conclusion

Ce blog explique comment résoudre le problème de l’échec de la restauration de la base de données SQL et de la base de données en cours d’utilisation. Vous pouvez déconnecter les utilisateurs actifs en fermant les connexions existantes ou en passant du mode multi-utilisateurs au mode mono-utilisateur. Vous pouvez également déconnecter tous les utilisateurs en redémarrant le service SQL Server. Mais, si vous avez toujours des problèmes pour restaurer la base de données, Stellar SQL Database Toolkit peut vous être utile. Il aide à résoudre le problème en réparant la base de données SQL corrompue ou en récupérant le fichier de sauvegarde du serveur SQL.

Related Post