Der Versuch, die logische Seite (5: 65424) in Datenbank 2 abzurufen, ist fehlgeschlagen

11

Beim SqlExceptionAufrufen einer gespeicherten Prozedur wird Folgendes angezeigt:

Der Versuch, die logische Seite (5: 65424) in Datenbank 2 abzurufen, ist fehlgeschlagen. Es gehört zur Zuordnungseinheit 7349876362857938944 und nicht zur 4899918190390149120.

System.Data.SqlClient.SqlException aufgetreten
Message = "Der Versuch, die logische Seite (5: 65424) in Datenbank 2 abzurufen, ist fehlgeschlagen. Sie gehört zur Zuordnungseinheit 7349876362857938944 und nicht zur 4899918190390149120.

Source = ". Net SqlClient Data Provider"
ErrorCode = -2146232060
Class = 21
LineNumber = 257
Number = 605
Procedure = "ispDisplayCount"
Server = "10.10.1.1"
State = 3

Was bedeutet diese Ausnahme? Gibt es eine Lösung für das oben genannte Problem?

Obwohl die Datenbank, auf die im obigen Fehler verwiesen wird, tempdb anzeigt, können ähnliche Fehler, die auf Nachricht 605 verweisen, unter Verwendung der folgenden Antworten behoben werden.

Meldung 605, Ebene 21,
Status 3, Zeile 1 Der Versuch, eine logische Seite (1: 8687634) in Datenbank 7 abzurufen, ist fehlgeschlagen. Es gehört zur Zuordnungseinheit 72057594364821504, nicht zur Zuordnungseinheit 72057594052476928.

Parag Meshram
quelle

Antworten:

11

Wenn die in der Fehlermeldung angegebene Datenbank-ID lautet 2, ist die betroffene Datenbank tempdb. Eine Methode zum Beheben dieser Art von Beschädigung in Tempdb besteht darin, die SQL Server-Instanz einfach neu zu starten. Befolgen Sie für andere Datenbank-IDs als 2 die folgenden Empfehlungen.

Möglicherweise müssen Sie aus dem Backup wiederherstellen. Versuchen Sie jedoch Folgendes:

Führen Sie als Mitglied der Sysadmin-Rolle DBCC PAGE (2, 5, 65424, 3);den Metadata: IndexIdWert aus und suchen Sie ihn .

  • Wenn es sich um 0(Heap) oder 1(Clustered Index) handelt, müssen Sie die Sicherung wiederherstellen.
  • Wenn dies nicht der 0 Fall ist 1, können Sie den nicht gruppierten Index einfach neu erstellen.

Führen Sie den DBCC-Befehl aus und teilen Sie uns mit, was Sie finden. Weitere Informationen zum Befehl finden Sie unter https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/DBCC PAGE

Matt M.
quelle
10

Ihre Datenbank ist beschädigt. Zeit für die Wiederherstellung nach einem guten Backup. Wenn Sie keine Backups haben, sollten Sie sich über die Bedeutung des Testens Ihres Wiederherstellungsplans informieren . Eine Untersuchung der Zuverlässigkeit Ihrer Hardware ist ebenfalls erforderlich. Achten Sie auf Warnungen und Fehler in den Systemprotokollen.

Remus Rusanu
quelle
9

Der Fehler zeigt an, dass Ihre Datenbank beschädigt ist. Die gute Nachricht ist, dass die Datenbank-ID 2 angibt, dass es sich um die Tempdb-Datenbank handelt. Daher ist es einfach, dies zu beheben. Starten Sie einfach die Datenbankinstanz neu.

Sobald Sie die Instanz neu starten, sollten Sie herausfinden, warum die Beschädigung aufgetreten ist. Führen Sie zunächst chkdskdas Laufwerk aus, auf dem sich die Problemdatei befindet. Als nächstes müssen Sie sich den Speicher selbst ansehen und feststellen, ob dort Probleme auftreten. Möglicherweise handelt es sich um ein Problem mit der physischen Festplatte, möglicherweise um HBA- oder RAID-Kartentreiber usw.

mrdenny
quelle
Denny, ist es auch von Vorteil, RAM-Integritätsprüfungen durchzuführen? Haben Sie gesehen, dass eine beschädigte Seite im RAM auch zu einer Beschädigung der Festplatte führt?
Ali Razeghi
1
Wenn ein fehlerhafter RAM-Stick vorhanden ist, kann dies dazu führen, dass eine Seite als fehlerhaft gemeldet wird. Die Wahrscheinlichkeit ist viel höher, dass es sich um ein Problem mit dem Festplattensubsystem handelt als um den Speicher. Das wäre der nächste Ort, um zu prüfen, ob die Festplatten tatsächlich in Ordnung sind.
Mrdenny
2

Ich konnte dies beheben, indem ich die SQL-Caches löschte:

DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO

Anscheinend hätte ein Neustart des SQL-Dienstes die gleichen Auswirkungen gehabt.

(via Made By SQL , hier reproduziert, um anderen zu helfen!)

8128
quelle
1

In meinem Fall war das Abschneiden und erneute Auffüllen von Daten in den betroffenen Tabellen die Lösung.

Höchstwahrscheinlich waren die Daten in Tabellen beschädigt.

Xameeramir
quelle
1

Was Sie von vielen Leuten hören würden, ist " die Datenbank ist beschädigt, Sie müssen wiederherstellen ", ohne auch nur zu empfehlen, dass Sie einige Minuten brauchen, um einige der folgenden Schritte auszuführen. Überprüfen Sie Ihre Protokolle, finden Sie heraus, wann das Problem zum ersten Mal aufgetreten ist, welchen Fehler vor dieser Zeile aufgetreten ist, und überprüfen Sie die Datenbank / Tabelle, zu der die Seite gehört

In meinem Fall ging diesem Fehler Folgendes voraus;

Indexeintrag in Index-ID 9 der Tabelle 629577281 in der Datenbank 'XYZ' konnte nicht gefunden werden. Der angegebene Index ist beschädigt oder es liegt ein Problem mit dem aktuellen Aktualisierungsplan vor

Eine Problemumgehung bestand darin, den Index, auf den verwiesen wird, zu verfolgen und vorübergehend zu löschen.

Später fand ich eine dieser Microsoft - Link, der meine genaue Problem und bietet eine Lösung beschreibt Link

hoffe, das hilft jemand anderem in Zukunft

daffyjeje
quelle