DBCC CheckDB führt zu einem frühen Hardwarefehler


7

Unser Produktionsdatenbankserver (SQL 2008 R2 Enterprise unter Windows Server 2008 R2 DC) hat seit Ende Juni während seiner nächtlichen DBCC-CheckDB (Prod_DB) einen seltsamen Fehler. Der gleiche Job war damals gut gelaufen.

Ich habe die vollständige Sicherung von diesem Server auf einem Testserver wiederhergestellt, und die Datendatei scheint in Ordnung zu sein, und die DBCC CheckDB hat dort keinen Fehler zurückgegeben.

Ich habe diesen Hotfix letzte Woche angewendet, aber das Problem wurde nicht behoben.

https://support.microsoft.com/en-us/kb/967351/en-us

Die Nachricht klingt ernst genug, aber die Anwendung funktioniert ansonsten normal. Ich bin mir also nicht sicher, was ich hier habe.

Es wäre dankbar, wenn jemand einen Rat teilen könnte.

Hier ist die Fehlermeldung aus dem Jobverlauf des SQL-Agenten:

Date                      7/28/2015 4:02:00 AM
Log                         Job History (DBCC Check DBs)

Step ID                 1
Server                   XXX
Job Name                            DBCC Check DBs
Step Name                         check dbs
Duration                              00:12:37
Sql Severity        17
Sql Message ID 823
Operator Emailed            
Operator Net sent           
Operator Paged                
Retries Attempted          0

Message
Executed as user: XXX. During undoing of a logged operation in database 

'Prod_DB', an error occurred at log record ID (21235:2462484:113). 
Typically, the specific failure is logged previously as an error in the Windows Event Log service. Restore the database or file from a backup, or repair the database. 
[SQLSTATE 42000] (Error 3314)  A database snapshot cannot be created because it failed to start. 
[SQLSTATE 42000] (Error 1823)  A database snapshot cannot be created because it failed to start. 
[SQLSTATE 42000] (Error 1823)  The database snapshot for online checks could not be created. Either the reason is given in a previous error or one of the underlying volumes does not support sparse files or alternate streams. Attempting to get exclusive access to run checks offline. 
[SQLSTATE 42000] (Error 7928)  The database could not be exclusively locked to perform the operation. 
[SQLSTATE 42000] (Error 5030)  Check statement aborted. The database could not be checked as a database snapshot could not be created and the database or table could not be locked. See Books Online for details of when this behavior is expected and what workarounds exist. Also see previous errors for more details. 
[SQLSTATE 42000] (Error 7926)  The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00001a68024000 in file 'M:\Datab\Prod_DB.mdf:MSSQL_DBCC9'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online. 
[SQLSTATE 01000] (Error 823)  The operating system returned error 665(The requested operation could not be completed due to a file system limitation) to SQL Server during a write at offset 0x00002fd543e000 in file 'M:\Datab\Prod_DB.mdf:MSSQL_DBCC9'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online. 
[SQLSTATE 01000] (Error 823).  The step failed.

1
Wurde das Festplattensubsystem überprüft (Festplatte selbst, Karten, Firmware usw.)? Wir hatten kürzlich 823 Fehler auf dem Client-System und sie fanden schließlich ein Problem mit einer Karte im System oder etwas Ähnlichem.

Haben Sie überprüft, ob für die Dateien in SQL Server oder im Dateisystem keine externen Beschränkungen gelten?
Steve Mangiameli

Können Sie versuchen, einen eigenen Snapshot zu erstellen und checkdb darauf auszuführen? Wenn dies nicht funktioniert, versuchen Sie es mit der Option TABLOCK in CHECKDB. Das einzige Problem mit TABLOCK ist, dass Ihre Datenbank gesperrt wird.
SQLPRODDBA

Antworten:


1

Wenn Sie a zum ersten Mal starten DBCC CHECKDB, wird ein Datenbank-Snapshot erstellt, damit die Datenbank während des Vorgangs online bleibt. Es gibt einige Dinge, die Sie sich ansehen können, wenn Sie Probleme damit haben:

  1. Bei der Defragmentierung Ihres NTFS-Systems tritt ein Problem auf, bei dem der SQLFS-Speicher den Datenbank-Snapshot nicht erstellen kann, wenn der NTFS-Speicher stark fragmentiert ist. Dies liegt daran, dass der Snapshot nur eine bestimmte Anzahl von Fragmenten enthalten kann. Dies ist im Microsoft Support Center in den Betriebssystemfehlern 1450 und 665 dokumentiert, die für Datenbankdatendateien gemeldet werden . (Ich glaube, dein Problem liegt hier)
  2. Überprüfen Sie, ob jemand einen NTFS-Filtertreiber aktualisiert hat, da bei alternativen Filterströmen ein Problem auftreten kann.

Darüber hinaus können Sie jederzeit versuchen, einen Datenbank-Snapshot der Datenbank auf einem weniger fragmentierten Teil des NTFS zu erstellen und CHECKDBdort hoffentlich auszuführen .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.