Niepowodzenie przywracania SQL z komunikatem "Baza danych jest już otwarta i może mieć tylko jednego użytkownika naraz"

Summary: Artykuł z bazy wiedzy (KB) zawierający rozwiązanie problemu z niepowodzeniem przywracania bazy danych SQL, gdy użytkownicy uzyskują dostęp do bazy danych.

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

Przywracanie bazy danych SQL do oryginalnej lokalizacji kończy się niepowodzeniem z powodu błędów podobnych do następującego widoku:
 

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

Co najmniej jeden użytkownik lub połączenie uzyskuje dostęp do bazy danych, do której trwa przywracanie. Oryginalna baza danych nie może zostać zastąpiona, jeśli istnieją użytkownicy lub połączenia uzyskujące dostęp do bazy danych.

Resolution

Zmień stan bazy danych z trybu wielu użytkowników na tryb pojedynczego użytkownika.

Korzystanie z programu SQL Server Management Studio

Aby ustawić bazę danych w trybie pojedynczego użytkownika:

  1. W Eksploratorze obiektów połącz się z wystąpieniem aparatu bazy danych SQL Server, a następnie rozwiń to wystąpienie.

  2. Kliknij prawym przyciskiem myszy bazę danych, którą chcesz zmienić, a następnie kliknij polecenie Właściwości.

  3. W oknie dialogowym Właściwości bazy danych kliknij stronę Opcje.

  4. Z opcji Ogranicz dostęp wybierz pozycję Pojedynczy.

  5. Jeśli inni użytkownicy są połączeni z bazą danych, zostanie wyświetlony komunikat Otwórz połączenia. Aby zmienić właściwość i zamknąć wszystkie inne połączenia, kliknij przycisk Tak.

 

Korzystanie z języka Transact-SQL

Aby ustawić bazę danych w trybie pojedynczego użytkownika:

  1. Nawiąż połączenie z aparatem bazy danych.

  2. Na pasku Standardowy kliknij przycisk Nowe zapytanie.

  3. Skopiuj i wklej poniższy przykład w oknie zapytania, a następnie kliknij przycisk "Execute". W tym przykładzie baza danych jest ustawiana na SINGLE_USER w celu uzyskania wyłącznego dostępu. Następnie w przykładzie ustawiono stan bazy danych Avamar1 na READ_ONLY i zwraca dostęp do bazy danych wszystkim użytkownikom. Opcja wypowiedzenia WITH ROLLBACK IMMEDIATE jest określony w pierwszym ALTER DATABASE wypowiedź. Spowoduje to wycofanie wszystkich niekompletnych transakcji i natychmiastowe rozłączenie wszelkich innych połączeń z bazą danych 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ódło:  

https://docs.microsoft.com/en-us/sql/relational-databases/databases/set-a-database-to-single-user-mode?view=sql-server-2017Gdy to zrobisz, ponów próbę przywrócenia bazy danych SQL do oryginalnej lokalizacji.

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.