Der SQL-Datenbankfehler 924 tritt normalerweise beim Versuch auf, auf eine SQL-Datenbank zuzugreifen, die bereits von einem anderen Benutzer verwendet wird. Die vollständige Meldung lautet wie folgt:
Beim Ausführen einer Transact-SQL-Anweisung oder eines Batches ist eine Ausnahme aufgetreten. (Microsoft.SqlServer.ConnectionInfo)
Msg 924, Ebene 14, Zustand 1, Zeile 1
Die Datenbank ‘db_name’ ist bereits geöffnet und kann nur einen Benutzer zur gleichen Zeit haben.
Was sollten wir tun?
In diesem Artikel zeigen wir verschiedene mögliche Lösungen für diesen Fehler, einschließlich nativer T-SQL-Lösungen, UI-Lösungen und SQL-Datenbankreparatursoftware.
Anforderungen
Dieser Artikel gilt für SQL Server 2008 bis SQL Server 2017. Ältere Versionen werden nicht mehr unterstützt. Er gilt außerdem für jede SQL Server-Edition einschließlich der Express Edition.
Erste Schritte
- Der Fehler 924, Datenbank ‘%.*ls’ ist bereits geöffnet und kann nur einen Benutzer gleichzeitig haben, ist ein Fehler mit Level 14.
- Die Stufe 14 gehört zu den Sicherheitsstufenfehlern wie z. B. eine verweigerte Berechtigung. Es bedeutet, dass es nicht geöffnet werden kann, weil es von jemandem benutzt wird.
Um den Grund für diesen Fehler zu überprüfen, überprüfen Sie Ihre Prozesse, um festzustellen, wer Ihren Prozess verwenden kann.
- Verwenden von gespeicherten Prozeduren
Verwenden Sie die gespeicherten Prozeduren sp_who oder sp_who2. Sie können auch den Befehl kill verwenden, um die Prozesse zu beenden, die in der Datenbank aktiv sind.
Hinweis: Der sp_who-Befehl ist dokumentiert und wird offiziell von Microsoft unterstützt. Der sp_who2-Befehl ist undokumentiert und wird von Microsoft nicht unterstützt.
Eine weitere Möglichkeit ist, die Aktivität mit dem SQL Profiler zu überprüfen, aber beachten Sie, dass der SQL Profiler in zukünftigen Versionen veraltet sein wird.
SQL-Server-Fehler 924 beheben
Wenn das Ihr Problem nicht löst, können Sie Ihre Datenbank in den Einzelbenutzermodus versetzen. Das können Sie über das SSMS und die Eigenschaften tun.
Sie können auch T-SQL in SSMS, sqlcmd oder ein anderes Tool Ihrer Wahl verwenden, um T-SQL-Befehle zu schreiben:
USE master;
GO
ALTER DATABASE youdbname
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
Lösung 1: Wiederherstellen der Datenbank aus einem Backup
Stellen Sie die Datenbank mit Hilfe eines Backups wieder her. Stellen Sie sicher, dass Sie ein aktuelles Backup haben. Wenn Sie keine aktuelle Datenbank haben und alle vorherigen Optionen nicht funktioniert haben, gibt es eine weitere Hoffnung.
Lösung 2: Überprüfen Sie die SQL Server-Dienste
Wenn auch das nicht funktioniert, starten Sie Ihren SQL Server-Dienst neu. Das könnte das Problem lösen. Versuchen Sie, den SQL Server Configuration Manager zu verwenden.
Lösung 3: DBCC CHECKDB Reparaturoptionen
Danach können Sie versuchen, Ihre Datenbank mit den folgenden Optionen zu reparieren:
DBCC CHECKDB('xyz',REPAIR_REBUILD)
Wenn das nicht funktioniert, versuchen Sie Folgendes:
DBCC CHECKDB('xyz',REPAIR_ALLOW_DATA_LOSS)
Wobei ‘xyz’ der Name der Datenbank ist.
Lösung 4: SQL-Datenbankreparatursoftware verwenden
Stellar Repair for MS SQL ist ein fortschrittliches Tool zur Wiederherstellung der beschädigten Datenbank. Sie müssen den Speicherort Ihrer MDF-Datei kennen. Diese MDF-Datei enthält alle Ihre Dateninformationen. Es unterstützt MS SQL 2019, 2017, 2016 und niedrigere Versionen. Sie müssen das Tool hier herunterladen:
Dieses Tool kann Ihnen helfen, eine Datendatei zu reparieren. Sie müssen Ihre SQL Server-Datenbank stoppen und dann die zu reparierende MDF-Datei auswählen.
Sie müssen nur auf die Option Datenbank auswählen drücken und Ihre MS SQL-Datenbankdatei auswählen. Oder drücken Sie die Schaltfläche Suchen, um in einem bestimmten Ordner zu suchen.
Mit der Option In Search folder können Sie angeben, wo gesucht werden soll. Sie können auch in Unterordnern suchen. Sobald Sie Ihre Datendatei ausgewählt haben, drücken Sie die Schaltfläche Reparieren und das ist alles. Sie werden Ihre Datenbank repariert haben.
Diese Software kann einfach heruntergeladen werden und ist in drei Versionen erhältlich:
- Technician
- Platinum
- Toolkit
Die Technician-Version repariert die beschädigte SQL-Datenbank. Die SQL Platinum Edition enthält auch Software zur Reparatur des SQL Server-Backups. Schließlich enthält das SQL Database Toolkit nicht nur die Module zur Reparatur der SQL-Datenbank und des Backups, sondern auch ein Modul zur Wiederherstellung von SQL Server-Administrator- und Benutzerpasswörtern. Lesen Sie mehr
Es ist auch möglich, die Ergebnisse zu scannen und die Datenbank später zu reparieren. Sie können Ihre Ergebnisberichte auch in MS SQL (MDF), XLS, HTML und einer CSV-Datei speichern.
Die Software kann Seitenfehler, Datenbankobjekte wie eine Tabelle, Ansicht, gespeicherte Prozedur, Funktion usw. reparieren. Die vollständigen Informationen können Sie auf der Produktseite nachlesen.
Systemanforderungen
Die minimale Speicheranforderungen ist 1 GB. Die Software kann auf Windows 10 und niedrigeren Versionen installiert werden. Die Software benötigt 50 MB freien Speicherplatz und die aktuelle Version ist 8. Die Software erstellt eine reparierte Datendatei, die entweder mit einer neuen oder einer Live-Datenbank verwendet werden kann.
Tabellen mit Zeilen- und Seitenkomprimierung können mit diesem Tool leicht wiederhergestellt werden. Wenn Sie Ihre Lizenz migrieren müssen, ermöglicht die Software bei Bedarf die Migration auf einen anderen Server.
Fazit
In diesem Artikel haben wir gelernt, wie wir die Datenbank behandeln und reparieren können, wenn der SQL-Datenbankfehler 924 auftritt. Wir können damit beginnen, die Datenbank in den Einzelbenutzermodus zu versetzen und dann versuchen, die Datenbank mit DBCC zu reparieren.
Schließlich zeigen wir, wie man das Stellar Repair for MS SQL verwendet, um die beschädigte SQL-Datenbankdatei zu reparieren. Es ist nur notwendig, SQL Server zu stoppen, die MDF-Datei zu finden und die Reparatur zu drücken.
Was this article helpful?