Wie behebt man DBCC CHECKDB Konsistenz-Fehler?
Zusammenfassung: Dieser Blog hilft Ihnen zu verstehen, wie man DBCC CHECKDB Konsistenzfehler in der SQL Server-Datenbank mit manuellen Methoden oder einem professionellen SQL-Reparaturtool behebt. Außerdem werden die möglichen Ursachen von Konsistenzfehlern in Datenbanken erörtert und Sie können die Ursache für die Fehler ermitteln.
Bei der Ausführung des DBCC CHECKDB-Befehls in SQL Server kann ein Datenbankkonsistenzfehler auftreten, der in etwa wie folgt aussieht:
“Datum/Zeit spid53 DBCC CHECKDB (mydb) ausgeführt von MYDOMAIN\theuser fand 15 Fehler und reparierte 0 Fehler. Verstrichene Zeit: 0 Stunden 0 Minuten 0 Sekunden. Interner Datenbank-Snapshot hat Splitpunkt-LSN = 00000026:0000089d:0001 und erste LSN = 00000026:0000089c:0001. Dies ist nur eine Informationsmeldung. Es ist keine Benutzeraktion erforderlich.”
Die obige Meldung gibt die Anzahl der in der SQL-Datenbank gefundenen Konsistenzfehler an und wie viele davon repariert wurden.
Schnelle Lösung: Sie können die Verwendung von DBCC CHECKDB mit Reparaturoptionen in Betracht ziehen, um Konsistenzfehler in der Datenbank zu beheben. Beachten Sie jedoch, dass die Ausführung von dbcc checkdb mit ‘REPAIR_ALLOW_DATA_LOSS’ zu Datenverlust führen kann. Verwenden Sie Stellar Repair for MS SQL, um die SQL-Datenbank unter Wahrung der Datenintegrität zu reparieren und wiederherzustellen. Die Software kann sowohl SQL Server MDF- als auch NDF-Dateien reparieren und alle Datenbankobjekte wiederherstellen. Laden Sie die kostenlose Testversion der Software über den unten angegebenen Link herunter, um sich von ihrer Wirksamkeit zu überzeugen. |
Was sind die Ursachen für Konsistenzfehler in SQL Server-Datenbanken?
DBCC CHECKDB führt physische und logische Konsistenzprüfungen für Datenbankseiten, Zuordnungsseiten, Indexbeziehungen usw. durch. Wenn eine dieser Prüfungen fehlschlägt, werden vom Befehl checkdb Konsistenzfehler gemeldet. Es gibt mehrere Gründe, warum DBCC Konsistenzfehler meldet, z. B. Probleme im Hardwaresystem oder in der SQL Server Engine, eine Beschädigung des Dateisystems oder beschädigte Seiten im Speicher.
Bevor Sie versuchen, das Problem der Datenbankinkonsistenz zu lösen, ist es wichtig zu verstehen, warum Konsistenzfehler in der Datenbank aufgetreten sind.
Wie lassen sich die Ursachen für Konsistenzfehler in SQL Server-Datenbanken ermitteln?
Um herauszufinden, was zu Konsistenzfehlern in der Datenbank geführt hat, können Sie diese Funktion verwenden:
1. Windows System-Ereignisprotokoll
Die Überprüfung des Windows-Systemereignisprotokolls hilft festzustellen, ob das E/A-Problem für die Konsistenzfehler der SQL Server-Datenbank verantwortlich ist. Es gibt an, ob die Ursache für die Fehler mit einem Festplattentreiber oder einem Hardwareproblem zusammenhängt. Im Systemprotokoll werden verschiedene Ereignis-IDs protokolliert, anhand derer Sie Informationen zur Behebung der Fehlerursache finden können.
Hinweis: Wenn Sie vermuten, dass ein Problem in der zugrundeliegenden Hardware zu Datenbankinkonsistenzfehlern führt, führen Sie das von Ihrem Hardwarehersteller bereitgestellte Diagnoseprogramm aus, um mögliche Hardwareprobleme zu identifizieren. |
2. Analysieren Sie die SQL Server ERRORLOG-Datei
Überprüfen Sie das SQL Server-Fehlerprotokoll, um festzustellen, ob Fehler wie Zugriffsverletzungen oder Assertions gemeldet wurden. Suchen Sie auch nach Msg 832 in der ERRORLOG-Datei, um festzustellen, ob die Datenbankseiten im Cache beschädigt sind.
3. Chkdsk-Befehl zum Testen der Integrität des Dateisystems
Probleme mit dem Dateisystem sind ein weiterer Grund, der zu einem Konsistenzproblem in SQL db führen kann. Verwenden Sie den chkdsk-Befehl um die Integrität des Dateisystems zu überprüfen.
4. SQLIOSim zur Durchführung von Integritätsprüfungen im Plattensystem
Verwenden Sie das Tool SQLIOSim, um die E/A-Integrität des Plattensystems zu prüfen. Das Tool kann Ihnen helfen, potenzielle Probleme mit der Datenintegrität aufzudecken. Unter diesem Link finden Sie weitere Informationen zu diesem Tool.
Methoden zur Behebung von DBCC CHECKDB Konsistenzfehlern in SQL Server-Datenbanken
Hinweis: Wenn der betreffende Fehler durch Hardware- oder Dateisystemprobleme verursacht wird, versuchen Sie, diese zu beheben, bevor Sie eine Wiederherstellung oder Reparatur zur Behebung des Fehlers durchführen. |
Methode 1 – Wiederherstellung der Datenbank aus dem Backup
Die erste und empfehlenswerteste Lösung zur Behebung des DBCC CHECKDB-Konsistenzfehlers ist die Wiederherstellung der Datenbank von einem exzellenten bekannten Back-up. Wenn das Backup jedoch nicht auf dem neuesten Stand oder beschädigt ist, fahren Sie mit der nächsten Lösung fort.
Methode 2 – DBCC CHECKDB mit der Option Minimum Repair ausführen
Wenn eine Wiederherstellung aus der Sicherung nicht möglich ist, versuchen Sie, den Befehl DBCC CHECKDB mit der Option minimum repair auszuführen, um die Konsistenzfehler zu beheben.
DBCC CHECKDB “REPAIR_ALLOW_DATA_LOSS ist die Mindestreparaturstufe”, mit der Sie versuchen können, die Fehler zu beheben. Seien Sie jedoch vorsichtig, die Option REPAIR_ALLOW_DATA_LOSS kann, wie der Name schon sagt, zu Datenverlusten führen. Im Wesentlichen kann die Reparaturoption Daten (z. B. Zeilen, Seiten oder Serien von Seiten) freigeben, auf die der Benutzer nicht zugreifen oder die er nicht wiederherstellen kann.
Was können Sie sonst noch tun?
Verwenden Sie ein spezialisiertes SQL-Datenbankreparaturwerkzeug wie Stellar Repair for MS SQL, um Datenbankfehler zu beheben und die Datenbank in einem konsistenten Zustand wiederherzustellen, wobei die Daten intakt bleiben. Es ist die beste Alternative zur Option DBCC CHECKDB Repair_Allow_Data_Loss, die bei der Reparatur von stark beschädigten SQL-DB-Dateien (MDF und NDF) hilft und alle SQL-DB-Objekte wiederherstellt.
Schlussfolgerung
Probleme mit dem Dateisystem oder der Hardware oder beschädigte Datenbankseiten im Speicher sind einige der Gründe, die zu Konsistenzfehlern in der Datenbank führen können, die von DBCC CHECKDB gemeldet werden. Sie können das Windows System Event Error Log oder das SQL Server Error Log überprüfen, um mehr über die Ursachen der Fehler herauszufinden und um festzustellen, ob die Lösung des Dateisystems oder der Hardware die Konsistenzfehler beheben kann. Falls nicht, können Sie versuchen, die Datenbank von einem Backup wiederherzustellen oder DBCC CHECKDB mit der Option Repair_Allow_Data_Loss auszuführen, um die Datenbank zu reparieren. Wenn nichts funktioniert, kann die Software Stellar Repair for MS SQL helfen. Mit der Software können Sie den Zugriff auf die Datenbank mit wenigen Klicks wiederherstellen.