#

SQL Server: Einzelbenutzermodus ausschalten

 

Ich habe aus Versehen meine Datenbank im SQL Server auf Einzelbenutzermodus umgeschaltet, als ich Daten wiederherstellen wollte.

Jetzt ist die Datenbank gesperrt und wenn ich die Eigenschaften öffnen möchte um den Einzelbenutzermodus auszuschalten, dann kommt genau diese Meldung des Einzelbenutzermodus, den ich ja wiederum ausschalten möchte.

 

Betrifft: Set database from SINGLE USER mode to MULTI USER

 

 

Hier die Anzeige, wenn man auf die Eigenschaften der Datenbank gehen möchte, um den Einzelbenutzermodus auszuschalten.

Der Dialog: Eigenschaften der Datenbank lässt sich nicht öffnen, da schon ein anderer Benutzer angemeldet ist.

Fehlermeldung:

TITEL: Microsoft SQL Server Management Studio

Das angeforderte Dialogfeld kann nicht angezeigt werden.

ZUSÄTZLICHE INFORMATIONEN:

Das angeforderte Dialogfeld kann nicht angezeigt werden. (SqlMgmt)

Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)

Die Programmierer-Datenbank ist bereits geöffnet und kann jeweils nur einen Benutzer haben. (Microsoft SQL Server, Fehler: 924)

Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.4213&EvtSrc=MSSQLServer&EvtID=924&LinkId=20476

 

Änderung der Datenbank von Einzelbenutzer in Mehrbenutzer Modus in einer Abfrage in TransactSQL

Dieses script ändert den Modus einer Datenbank in den Mehrbenutzermodus

use master

go

ALTER DATABASE Programmierer SET MULTI_USER

go

 

 

Meldung

Meldung 5064, Ebene 16, Status 1, Zeile 3

Änderungen am Status oder an Optionen der Programmierer-Datenbank können zu diesem Zeitpunkt nicht vorgenommen werden. Die Datenbank befindet sich im Einzelbenutzermodus, und zurzeit ist ein Benutzer mit ihr verbunden.

Meldung 5069, Ebene 16, Status 1, Zeile 3

Fehler bei der ALTER DATABASE-Anweisung.

 

 

 

Lösung:

Man muss den Prozess, der schon mit der Datenbank verbunden ist, löschen. Es kann zum Beispiel sein, dass sich ein Webserver IIS oder ein Client schon mit der Datenbank verbunden hat.

Schritt 1: ermitteln, welche ProzessID spid mit der Datenbank verbunden ist

Mit diesem SQL Server script:

select *

from sysprocesses p inner join sysdatabases d on p.dbid = d.dbid

where d.name = 'meine_Datenbank'

 

 

 

 

script im SQL Server (TransactSQL) zum Beenden des Einzelbenutzermodus und umschalten in Mehrbenutzermodus.

Die Zeile Kill 51 schaltet den Task aus, der die Umschaltung verhindert

use master

go

select *

from sysprocesses p inner join sysdatabases d on p.dbid = d.dbid

where d.name = 'Programmierer'

GO

 

Kill 51

go

 

ALTER DATABASE Programmierer SET MULTI_USER

go

 

 

 

script ausführen

Sobald man den Task kennt, der die Änderung verhindert, muss man das komplette script durchlaufen lassen, indem man alles Markiert und dann F5 drückt oder Ausführen drückt

 

Nachher:

Nach dem Durchlauf des Abfrage-scripts ist die Datenbank wieder in dem normalen Mehrbenutzermodus

 

 

 

 

Dokumentation, Frage:

kann man den Einzelbenutzermodus ausschalten indem man den Datenbankserver neu startet?

Nein

Kein Erfolg: SQL Server neustarten

 

Nach dem Neustart des SQL Servers:

War die Datenbank immer noch gesperrt oder in Einzelbenutzermodus

 

Mobile

.

123movies