Wissensdatenbank : Microsoft SQL Server
Trouble Shooting: Datenbank im Einzelbenutzermodus
Geschrieben von Jan Setzer am 03.08.2016 01:59

Achtung: Benutzung der SQL-Befehle auf eigene Verantwortung!

Situation

Durch eine fehlgeschlagene Datenbank-Kopier-Aktion befand sich eine Datenbank im Einzelbenutzermodus. Sie ließ sich nicht mehr administrieren. Erkennbar war dies durch den Eintrag (Einzelbenutzermodus) im Objekt-Explorer des Microsoft SQL Server Management Studio. Jeder weitere Versuch scheiterte, da die Datenbank (in diesem Einzelbenutzermodus) bereits mit einem anderen Anwender verbunden war.

Umgebung

Microsoft SQL Server 2008R2

Lösung

Zunächst muss derjenige Datenbankuser herausgefunden werden. Dies kann erfolgen über folgenden SQL-Befehl:

select
    spid, d.name, d.dbid, login_time, nt_domain, nt_username, loginame

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

where
    d.name = '<HIER NAMEN DER DATENBANK EINTRAGEN>'

go

Das Ergebnis zeigt den User an, der im Moment der Ausführung dieses Befehls mit der Datenbank verbunden war. Diese Verbindung blockiert die Administration.

Die Verbindung muss nun getrennt werden. Das geschieht über folgenden Befehl:

kill <WERT AUS SPALTE spid HIER EINTRAGEN>
go

Anschließend kann der Modus verändert werden:

alter database <HIER NAMEN DER DATENBANK EINTRAGEN> 
    set MULTI_USER
go

Ergebnis

Im Objekt-Explorer des Microsoft SQL Server Management Studio den Eintrag Datenbanken auswählen und die Ansicht mit Taste F5 aktualisieren. Nun sollte die Datenbank wieder wie gewohnt dargestellt werden.

 

Achtung: Benutzung der SQL-Befehle auf eigene Verantwortung!