Сбой восстановления SQL с ошибкой «База данных уже открыта и может одновременно иметь только одного пользователя»

Summary: Статья базы знаний (KB), в которой описывается решение проблемы сбоя восстановления базы данных SQL при обращении пользователей к базе данных.

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

Восстановление базы данных SQL в исходное расположение завершается сбоем с ошибками, подобными следующим:
 

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

Один или несколько пользователей или подключений обращаются к базе данных, в которую выполняется восстановление. Исходная база данных не может быть перезаписана, если к базе данных обращаются пользователи или подключения.

Resolution

Измените состояние базы данных с многопользовательского на однопользовательский режим.

Использование SQL Server Management Studio

Чтобы перевести базу данных в однопользовательский режим, выполните следующие действия.

  1. В обозревателе объектов подключитесь к экземпляру компонента SQL Server Database Engine, а затем разверните этот экземпляр.

  2. Щелкните правой кнопкой мыши базу данных, которую необходимо изменить, и выберите пункт Свойства.

  3. В диалоговом окне «Свойства базы данных» откройте страницу «Параметры».

  4. В параметре Ограничить доступ выберите Одиночный.

  5. Если другие пользователи подключены к базе данных, появится сообщение Открытые подключения. Чтобы изменить свойство и закрыть все остальные подключения, нажмите кнопку Да.

 

Использование Transact-SQL

Чтобы перевести базу данных в однопользовательский режим, выполните следующие действия.

  1. Подключитесь к компоненту Database Engine.

  2. На панели "Стандартные" нажмите кнопку Новый запрос.

  3. Скопируйте и вставьте следующий пример в окно запроса и нажмите кнопку «Выполнить». В данном примере для базы данных задается значение SINGLE_USER для получения монопольного доступа. Затем в примере устанавливается состояние базы данных Avamar1 в следующее READ_ONLY и возвращает доступ к базе данных всем пользователям. Вариант завершения WITH ROLLBACK IMMEDIATE указывается в первом ALTER DATABASE утверждение. Это приводит к откату всех незавершенных транзакций и немедленному отключению всех других подключений к базе данных 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

 


См.:  

https://docs.microsoft.com/en-us/sql/relational-databases/databases/set-a-database-to-single-user-mode?view=sql-server-2017После этого повторите попытку восстановления базы данных SQL в исходном расположении.

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.