Échec de la restauration SQL avec l’erreur « La base de données est déjà ouverte et ne peut avoir qu’un utilisateur à la fois »

Summary: Article de la base de connaissances (KB) qui fournit une solution aux échecs de restauration de base de données SQL lorsque des utilisateurs accèdent à la base de données.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

La restauration de la base de données SQL à l’emplacement d’origine échoue avec des erreurs similaires à l’affichage suivant :
 

avsql Error <40258>: sqlconnectimpl_smo::get_database_data_names Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: Database 'Avamar1' is already open and can only have one user at a time.



 

Cause

Un ou plusieurs utilisateurs ou connexions accèdent à la base de données qui est restaurée vers. La base de données d’origine ne peut pas être remplacée si des utilisateurs ou des connexions accèdent à la base de données.

Resolution

Modifiez l’état de la base de données du mode multi-utilisateur au mode utilisateur unique.

Utilisation de SQL Server Management Studio

Pour définir une base de données en mode utilisateur unique :

  1. Dans Object Explorer, connectez-vous à une instance du moteur de base de données SQL Server, puis développez cette instance.

  2. Cliquez avec le bouton droit de la souris sur la base de données à modifier, puis cliquez sur Properties.

  3. Dans la boîte de dialogue Propriétés de la base de données, cliquez sur la page Options.

  4. Dans l’option Restrict Access, sélectionnez Single.

  5. Si d’autres utilisateurs sont connectés à la base de données, un message Open Connections s’affiche. Pour modifier la propriété et fermer toutes les autres connexions, cliquez sur Yes.

 

Utilisation de Transact-SQL

Pour définir une base de données en mode utilisateur unique :

  1. Connectez-vous au moteur de base de données.

  2. Dans la barre Standard, cliquez sur New Query.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête et cliquez sur le bouton « Execute ». Cet exemple définit la base de données sur SINGLE_USER pour obtenir un accès exclusif. L’exemple définit ensuite l’état de la base de données Avamar1 sur READ_ONLY et rend l’accès à la base de données à tous les utilisateurs. L’option de résiliation WITH ROLLBACK IMMEDIATE est spécifié dans le premier ALTER DATABASE déclaration. Cela entraîne l’annulation de toutes les transactions incomplètes et la déconnexion immédiate de toutes les autres connexions à la base de données Avamar1.

 

SQLCopy

USE master; GO ALTER DATABASE Avamar1 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE Avamar1 SET READ_ONLY; GO ALTER DATABASE Avamar1 SET MULTI_USER; GO

 


Références :  

https://docs.microsoft.com/en-us/sql/relational-databases/databases/set-a-database-to-single-user-mode?view=sql-server-2017Une fois cette opération effectuée, relancez la restauration de la base de données SQL à l’emplacement d’origine.

Affected Products

Avamar

Products

Avamar, Avamar Plug-in for SQL
Article Properties
Article Number: 000038587
Article Type: Solution
Last Modified: 11 Dec 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.