Ich benötige Hilfe beim Einstellen einer Datenbank, die im SINGLE_USER
Modus wiederhergestellt wurde MULTI_USER
. Jedes Mal, wenn ich renne
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
Ich bekomme diesen Fehler:
Änderungen am Status oder an den Optionen der Datenbank 'BARDABARD' können derzeit nicht vorgenommen werden.
Die Datenbank befindet sich im Einzelbenutzermodus und ein Benutzer ist derzeit mit ihr verbunden.
Es muss sich im Nicht- SINGLE_USER
Modus befinden, um es in einen anderen Modus zu versetzen, aber ich kann die Datenbank in keinem anderen Modus einstellen, solange es sich um einen SINGLE_USER
Modus handelt.
quelle
master
) in der Dropdown- Liste Symbolleiste Verfügbare Datenbanken ausgewählt ist , wenn das Abfragefenster aktiv ist. Wenn es Ihnen weiterhin Kopfschmerzen bereitet, schließen Sie alle anderen Abfragefenster und wählen Sie eine unschuldige Systemdatenbank wiemaster
odertempdb
in der Dropdown-Liste in dem Fenster aus, das Sie noch haben.Diese Fehlermeldung bedeutet im Allgemeinen, dass andere Prozesse mit der Datenbank verbunden sind. Versuchen Sie dies auszuführen, um zu sehen, welche verbunden sind:
Das gibt Ihnen den Prozess zurück und dann sollten Sie in der Lage sein:
Wo [xxx] ist der
spid
Prozess, den Sie zu töten versuchen.Dann können Sie Ihre obige Anweisung ausführen.
Viel Glück.
quelle
Sie können die Option hinzufügen, Ihre Änderung sofort zurückzusetzen.
quelle
ROLLBACK IMMEDIATE
genau?ALTER DATABASE
Transaktion der Anweisung zurückgesetzt werden. Im Gegensatz dazu wirdWITH ROLLBACK X SECONDS
darauf gewartet , dass die Transaktionen beendet werden, bevor sie zum Rollback gezwungen werden oder auf unbestimmte Zeit gewartet werden, bis keine ausstehenden Transaktionen mehr vorhanden sind (was meiner Meinung nach die Standardeinstellung ist, aber kann im Moment nicht im Dokument gefunden werden). Es ist das Äquivalent von "Stoppen Sie alles, was Sie gerade tun, und tun Sie dies."SQL Server 2012:
Klicken Sie mit der rechten Maustaste auf
DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user
und klicken Sie auf OK.Voila!
quelle
Ich hatte das gleiche Problem und es wurde durch die folgenden Schritte behoben - Referenz: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html
quelle
Das hat bei mir gut funktioniert.
Schritt 1. Klicken Sie mit der rechten Maustaste auf das Datenbankmodul, klicken Sie auf Aktivitätsmonitor und sehen Sie, welcher Prozess eine Verbindung hat. Töte diesen bestimmten Benutzer und führe die Abfrage sofort aus.
Schritt 2.
und aktualisieren Sie die Datenbank.
quelle
Ich hatte tatsächlich ein Problem, bei dem meine Datenbank durch die Prozesse und eine Racebedingung mit ihnen ziemlich gesperrt war. Als ich einen Befehl aktualisiert bekam und sie ihn wieder gesperrt hatten, musste ich die folgenden Befehle hintereinander ausführen in SSMS und habe mich offline geschaltet und von dort aus habe ich meine Wiederherstellung durchgeführt und bin wieder gut online gegangen. Die beiden Abfragen waren:
Zuerst lief:
Dann unmittelbar danach (im zweiten Abfragefenster):
Habe getan, was ich brauchte und habe es dann wieder online gebracht. Vielen Dank an alle, die diese Stücke geschrieben haben, damit ich mein Problem kombinieren und lösen kann.
quelle
Es ist möglicherweise am besten, sich direkt am Server anzumelden, anstatt SQL Management Studio zu verwenden
Stellen Sie sicher, dass das Konto, als das Sie sich anmelden, dbowner für die Datenbank ist, die Sie auf MULTI_USER setzen möchten. Melden Sie sich als sa an (mithilfe der SQL Server-Authentifizierung), wenn Sie können
Wenn Ihre Datenbank von IIS verwendet wird, stoppen Sie die Website und den App-Pool, der sie verwendet. Dies ist möglicherweise der Prozess, der verbunden ist und Sie daran hindert, auf MULTI_USER zu setzen
Lesen Sie hier, wenn Sie immer noch Probleme haben:
http://www.sqlservercentral.com/blogs/pearlknows/2014/04/07/help-im-stuck-in-single-user-mode-and-can-t-get-out/
ALS LETZTE ALTERNATIVE - Wenn Sie alles oben Genannte ausprobiert haben und verzweifelt sind, können Sie versuchen, die SQL Server-Instanz zu stoppen und erneut zu starten
quelle
Ich habe gerade mit folgenden Schritten behoben, es kann Ihnen helfen.
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt: 5
Führen Sie dann die folgende Abfrage aus.
Genießen...!
quelle
Der folgende Code hat bei mir funktioniert, als ich die spezifische SPID nicht kannte, die zum Wechseln in den
singleuser
Modus verwendet wurde.quelle
dann, um es lebend zurückzubringen
quelle
Das hat bei mir gut funktioniert
Hoffe diese Arbeit für alle Danke Ramesh Kumar
quelle
Wenn das oben genannte nicht funktioniert, suchen Sie den Anmeldenamen des Spids und deaktivieren Sie ihn unter Sicherheit - Anmeldungen
quelle
Sie konnten dies nicht tun, da die Datenbank im Einzelmodus war. Vor allem in Ordnung, aber Sie sollten Folgendes wissen: Wenn Sie das SQL Management Studio geöffnet haben, kennt es keinen Benutzer in der Datenbank, aber wenn Sie auf die Datenbank klicken, werden Sie als einzelner Benutzer betrachtet und Ihr Befehl funktioniert nicht. Tun Sie das einfach: Schließen Sie das Management Studio und öffnen Sie es erneut. Neues Abfragefenster ohne Auswahl einer Datenbank Schreiben Sie das Befehlsskript.
mach f5 wolla alles ok!
quelle
Ich habe das Problem leicht gelöst
Klicken Sie mit der rechten Maustaste auf den Datenbanknamen und benennen Sie ihn um
Klicken Sie nach dem Ändern mit der rechten Maustaste auf den Datenbanknamen -> Eigenschaften -> Optionen -> gehen Sie zum Ende des Bildlaufs RestrictAccess (SINGLE_USER zu MULTI_USER).
Jetzt können Sie die Datenbank wieder in Ihren alten Namen umbenennen.
quelle
Bei mehr als drei Gelegenheiten mit SQL Server 2014 wurde eine Datenbank in den Einzelbenutzermodus konvertiert, ohne dass ich etwas geändert habe. Es muss irgendwie während der Datenbankerstellung aufgetreten sein. Alle oben genannten Methoden haben nie funktioniert, da ich immer den Fehler erhalten habe, dass sich die Datenbank im Einzelbenutzermodus befindet und keine Verbindung hergestellt werden kann.
Ich musste nur den SQL Server-Windows-Dienst neu starten. Dadurch konnte ich eine Verbindung zur Datenbank herstellen und die erforderlichen Änderungen vornehmen oder die Datenbank löschen und neu beginnen.
quelle
Gehen Sie einfach zu den Datenbankeigenschaften und ändern Sie den SINGLE USER-Modus in MULTI USER
HINWEIS: Wenn dies bei Ihnen nicht funktioniert, führen Sie eine Db-Sicherung durch, stellen Sie sie wieder her und führen Sie die oben beschriebene Methode erneut aus
* Single = SINGLE_USER
Multiple = MULTI_USER
Eingeschränkt = RESTRICTED_USER
quelle
Nach dem Aufrufen des Einzelbenutzermodus kann ein Client nur EINE Verbindung mit dem SQL Server herstellen. Denken Sie daran, dass "Object Explorer" eine (separate) Verbindung aufnimmt. Wenn Sie also versuchen, eine Mehrbenutzeranweisung in einer Abfrage auszuführen Im Fenster wird die Fehlermeldung angezeigt, dass Sie im Einzelbenutzermodus keine weitere Verbindung herstellen können.
Für mich war dies jedoch nicht das Problem. In meinem Fall gab es nur wenige automatisierte Prozesse, die dauerhaft (alle paar Sekunden) Verbindungen herstellten. Sobald ich die Datenbank in den Einzelbenutzermodus versetzte und mich selbst trennte, war einer von Die Prozesse haben die Verbindung hergestellt / belegt (bevor ich meinen Wiederherstellungsvorgang starten konnte). Sobald ich diese Verbindungen beenden würde - sie würden sich wieder verbinden und wenn ich den Befehl Wiederherstellen ausführen würde, würde ich den Fehler erhalten, dass die Verbindung bereits besetzt ist.
Um dies zu beheben, musste ich die
kill
Anweisungen, Änderungen vonUser-Mode
Anweisungen undRestore
Operationen in einem Abfragefenster schreiben und als ich sie alle auf einmal ausführte, voila !!! es funktionierte.Hoffe das hilft anderen.
quelle
Ich hatte Probleme mit einer lokalen Datenbank.
Ich konnte dieses Problem lösen, indem ich SQL Server stoppte, dann SQL Server startete und dann die SSMS-Benutzeroberfläche verwendete, um die DB-Eigenschaften in Multi_User zu ändern.
Die Datenbank ging in den "Einzelbenutzer" -Modus, als ich versuchte, eine Sicherung wiederherzustellen. Ich hatte vor dem Wiederherstellungsversuch keine Sicherung der Zieldatenbank erstellt (SQL 2017). das wird dich jedes Mal bekommen.
Stoppen Sie SQL Server, starten Sie SQL Server und führen Sie die oben genannten Skripte aus oder verwenden Sie die Benutzeroberfläche.
quelle
Ich habe eine Weile nach der Lösung gegoogelt und schließlich die folgende Lösung gefunden:
SSMS verwendet im Allgemeinen mehrere Verbindungen zur Datenbank hinter den Kulissen.
Sie müssen diese Verbindungen trennen, bevor Sie den Zugriffsmodus ändern. (Ich habe es mit EXEC (@kill) gemacht; in der unten.)
Dann,
Führen Sie die folgende SQL aus, um die Datenbank in den MULTI_USER-Modus zu versetzen.
Um in den Einzelbenutzermodus zurückzukehren, können Sie Folgendes verwenden:
Das sollte funktionieren. Viel Spaß beim Codieren !!
Vielen Dank!!
quelle