Bei Verwendung von Microsoft SQL Server Wenn Sie eine beschädigte MDF-Datenbankdatei anhängen oder darauf zugreifen möchten, werden möglicherweise verschiedene Fehlermeldungen angezeigt, die verwirrend sein können. Nachfolgend listen wir alle Fehler auf, sortiert nach Häufigkeit. Für jeden Fehler werden wir seine Symptome beschreiben, die genaue Ursache erläutern und Beispieldateien zusammen mit den von behobenen Dateien bereitstellen DataNumen SQL Recovery. Dies wird Ihnen helfen, diese Fehler besser zu verstehen. Beachten Sie, dass „xxx.MDF“ den Namen Ihrer beschädigten Datei darstellt SQL Server MDF-Datenbankdatei.
Basierend auf SQL Server oder CHECKDB-Fehlermeldungen gibt es drei Arten von Fehlern:
-
- Zuordnungsfehler: Wir wissen, dass die Daten in MDF- und NDF-Dateien als zugeordnet sind Seiten. Und es gibt einige spezielle Seiten, die für die Zuordnungsverwaltung verwendet werden:
Seitentyp | Beschreibung |
GAM-Seite | Speichern Sie GAM-Informationen (Global Allocation Map). |
SGAM Seite | Speichern Sie SGAM-Informationen (Shared Global Allocation Map). |
IAM-Seite | Speichern Sie Informationen zur Indexzuordnungskarte (IAM). |
PFS-Seite | Speichern Sie die PFS-Zuordnungsinformationen. |
Wenn eine der oben genannten Zuordnungsseiten Fehler aufweist oder die von diesen Zuordnungsseiten verwalteten Daten nicht mit den Zuordnungsinformationen übereinstimmen, dann SQL Server oder CHECKDB wird berichten Zuordnungsfehler.
- Konsistenzfehler: Für Seiten die zum Speichern von Daten verwendet werden, einschließlich der Datenseiten und Indexseiten, wenn SQL Server Wenn CHECKDB eine Inkonsistenz zwischen dem Seiteninhalt und der Prüfsumme feststellt, werden diese gemeldet Konsistenzfehler.
- Alle anderen Fehler: Möglicherweise fallen andere Fehler nicht in die beiden oben genannten Kategorien.
- xxxx.mdf ist keine primäre Datenbankdatei. (Microsoft SQL Server, Fehler: 5171)
- Der Header für die Datei 'xxxx.mdf' ist kein gültiger Header für Datenbankdateien. Die Eigenschaft FILE SIZE ist falsch. (Microsoft SQL Server, Fehler: 5172)
- SQL Server Es wurde ein logischer konsistenzbasierter E / A-Fehler festgestellt: falsche Prüfsumme
- SQL Server Es wurde ein logischer konsistenzbasierter E / A-Fehler festgestellt: zerrissene Seite
- Sie löschen versehentlich einige Datensätze oder Tabellen in der Datenbank.
SQL Server hat ein eingebautes Tool namens DBCC, Was sich CHECKDB und PRÜFBAR Optionen, die helfen können, eine beschädigte MDF-Datenbank zu reparieren. Bei stark beschädigten MDB-Datenbankdateien DBCC-CHECKDB und PRÜFBAR wird auch scheitern.
Von CHECKDB gemeldete Konsistenzfehler:
- SQL Server Es wurde ein logischer konsistenzbasierter E / A-Fehler festgestellt: falsche Prüfsumme
- Zeile in sys.xxx hat keine übereinstimmende Zeile in sys.xxx.
- Tabellenfehler: Objekt-ID ##, Index-ID ## wird neu erstellt.
- Dieser Systemtabellenindex kann nicht neu erstellt werden.
- Objekt-ID ##, Index-ID ##, Partitions-ID ##, Zuordnungs-Einheiten-ID ## (Typ Unbekannt), Seiten-ID (##: 560) enthält eine falsche Seiten-ID in ihrem Seitenkopf.
Von CHECKDB gemeldete Zuordnungsfehler:
- Auf die IAM-Seite (Index Allocation Map) wird vom nächsten Zeiger der IAM-Seite verwiesen
- Der Umfang (##: ##) in der Datenbank-ID ## ist im GAM als zugewiesen markiert, aber kein SGAM oder IAM hat ihn zugewiesen.
Alle anderen von CHECKDB gemeldeten Fehler:
- Fehlgeschlagen: (- #######) Die Ausführung der Abfrage "DBCC CHECKDB (xxxx) WITH NO_INFOMSGS" ist mit dem folgenden Fehler fehlgeschlagen: "xxxx".
- E / A-Fehler (fehlerhafte Seiten-ID) beim Lesen bei Offset 0x ###### in Datei 'xxxx.mdf' festgestellt.
- Das System konnte nicht genügend Datenbank aktivieren, um das Protokoll neu zu erstellen
- Datenverlust bei Reparaturen mit CHECKDB
- Die Datei scheint vom Betriebssystem abgeschnitten worden zu sein.
- Beim Wiederherstellen eines protokollierten Vorgangs in der Datenbank 'xxxx' ist ein Fehler bei der Protokolldatensatz-ID aufgetreten.