MSSQLSERVER_605

Details

Produktname

SQL Server

Produktversion

10.0

Buildnummer des Produkts

 

Ereignis-ID

605

Ereignisquelle

MSSQLSERVER

Komponente

SQLEngine

Symbolischer Name

WRONGPAGE

Meldungstext

Fehler beim Abrufen der logischen Seite %S_PGID in der %d-Datenbank, die nicht zur Zuordnungseinheit %I64d, sondern zu %I64d gehört.

Erklärung

Dieser Fehler bedeutet im Allgemeinen eine Beschädigung von Seiten oder Zuordnungen in der angegebenen Datenbank. In SQL Server werden Beschädigungen erkannt, wenn Seiten gelesen werden. Zu diesem Zweck werden entweder Seitenverknüpfungen verfolgt oder IAM (Index Allocation Map) verwendet. Alle Seiten, die einer Tabelle zugeordnet sind, müssen zu einer der Zuordnungseinheiten gehören, die der Tabelle zugeordnet sind. Wenn die im Seitenkopf enthaltene Zuordnungseinheits-ID nicht mit einer zur Tabelle gehörenden Zuordnungseinheits-ID übereinstimmt, wird diese Ausnahme ausgelöst. Die erste in der Fehlermeldung aufgeführte Zuordnungseinheits-ID entspricht der im Seitenkopf vorhandenen ID, der zweite Zuordnungseinheitswert entspricht der der Tabelle zugeordneten ID.

Datenbeschädigungsfehler

Mit dem Schweregrad 21 wird eine potenzielle Datenbeschädigung angegeben. Zu den möglichen Ursachen zählen eine beschädigte Seitenkette, eine fehlerhafte IAM und ein ungültiger Eintrag in der sys.objects-Katalogsicht für dieses Objekt. Diese Fehler werden häufig durch Hardwarefehler oder Festplatten-Gerätetreiberfehler verursacht.

Vorübergehende Fehler

Mit dem Schweregrad 12 wird ein potenzieller vorübergehender Fehler angegeben, das heißt, der Fehler tritt im Cache auf und deutet nicht auf eine Beschädigung von Daten auf dem Datenträger hin. Vorübergehende 605-Fehler können durch folgende Bedingungen verursacht werden:

  • SQL Server wird vorzeitig vom Betriebssystem benachrichtigt, dass ein E/A-Vorgang abgeschlossen wurde; die Fehlermeldung wird angezeigt, obwohl keine tatsächliche Datenbeschädigung vorliegt.

Durch das Ausführen einer Abfrage mit dem Optimiererhinweis NOLOCK oder durch das Festlegen der Isolationsstufe für Transaktionen auf READ UNCOMMITTED. Wenn eine Abfrage mit NOLOCK oder READ UNCOMMITTED versucht, Daten zu lesen, die von einem anderen Benutzer verschoben oder geändert werden, tritt der Fehler 605 auf. Wenn Sie sicherstellen möchten, dass es sich um einen vorübergehenden 605-Fehler handelt, führen Sie die Abfrage später erneut aus. Weitere Informationen finden Sie in diesem KB-Artikel 235880: "Fehlermeldung "Fehler 605" beim Ausführen einer Abfrage mit dem NOLOCK-Optimiererhinweis oder Festlegen der Isolationsstufe für Transaktionen auf READ UNCOMMITTED in SQL Server".

Im Allgemeinen war der Fehler 605 wahrscheinlich vorübergehend, wenn der Fehler während des Datenzugriffs auftritt, nachfolgende DBCC CHECKDB-Vorgänge jedoch ohne Fehler abgeschlossen werden.

Benutzeraktion

Wenn der Fehler 605 nicht vorübergehend auftritt, ist das Problem schwerwiegend und muss behoben werden, indem folgende Aufgaben ausgeführt werden:

  1. Geben Sie die Tabellen an, die den in der Meldung angegebenen Zuordnungseinheiten angehören, indem Sie folgende Abfrage ausführen. Ersetzen Sie allocation_unit_id durch die in der Fehlermeldung angegebenen Zuordnungseinheiten.

    USE database_name;

    GO

    SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,

    au.type_desc AS allocation_type, au.data_pages, partition_number

    FROM sys.allocation_units AS au

    JOIN sys.partitions AS p ON au.container_id = p.partition_id

    JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id

    WHERE au.allocation_unit_id = allocation_unit_id OR au.allocation_unit_id = allocation_unit_id

    ORDER BY au.allocation_unit_id;

    GO

  2. Führen Sie DBCC CHECKTABLE ohne REPAIR-Klausel für die Tabelle aus, die zur zweiten in der Fehlermeldung angegebenen Zuordnungseinheits-ID gehört.

  3. Führen Sie DBCC CHECKDB ohne REPAIR-Klausel so schnell wie möglich aus, um das vollständige Ausmaß der Beschädigung in der gesamten Datenbank zu bestimmen.

  4. Sehen Sie im Fehlerprotokoll nach Fehlern, die häufig in Kombination mit dem Fehler 605 auftreten, und prüfen Sie das Windows-Ereignisprotokoll auf system- bzw. hardwarebedingte Probleme. Beheben Sie die hardwarebedingten Probleme, die in den Protokollen enthalten sind.

Wenn das Problem nicht hardwarebedingt ist, führen Sie eine der folgenden Aufgaben aus:

  1. Stellen Sie die Datenbank von einer bekanntermaßen fehlerfreien Sicherung wieder her. Sie können das Sicherungsfeature der Seitenwiederherstellung verwenden, um nur die beschädigten Seiten wiederherzustellen.

  2. Führen Sie DBCC CHECKDB mit der REPAIR-Klausel aus, die im DBCC CHECKDB-Vorgang empfohlen wurde, der in Schritt 2 zum Beheben der Beschädigung ausgeführt wurde. Wenden Sie sich an Ihren primären Anbieter für technischen Support, wenn das Problem durch das Ausführen von DBCC CHECKDB mit einer der REPAIR-Klauseln nicht behoben werden kann. Halten Sie die Ausgabe von DBCC CHECKDB zur Überprüfung bereit.

    VorsichtshinweisVorsicht

    Wenden Sie sich an Ihren primären Anbieter für technischen Support, bevor Sie diese Anweisung ausführen, wenn Sie nicht sicher sind, welche Auswirkungen DBCC CHECKDB mit einer REPAIR-Klausel auf Ihre Daten hat.

Siehe auch

Verweis