Wir haben kürzlich unsere Intranet-Produktionsdatenbank von einem SQL Server 2008 auf einen brandneuen SQL Server 2008 R2-Server verschoben.
Der Sicherungsjob ist seit der Migration aufgrund von DBCC-Fehlern fehlgeschlagen (Datenbankintegritätsaufgabe überprüfen).
Ich habe gestern versucht, eine DBCC-CHECKDB mit der Option reparate_rebuild in der Produktionsdatenbank auszuführen, und die nachfolgende DBCC-CHECKDB zeigte keine Fehler. Die DBCC CHECKDB für die Produktionsdatenbanken zeigt erneut Fehlermeldungen an, die Sicherung ist abgeschlossen, aber der Wartungsplan schlägt natürlich fehl: Ich habe (eine lange Liste von) die folgenden Fehlermeldungen:
Table error: page (1:1100029), whose header indicates that it is allocated to object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data), is allocated by another object.
Msg 2534, Level 16, State 2, Line 1
Table error: page (1:1100030), whose header indicates that it is allocated to object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data), is allocated by another object.
Msg 7965, Level 16, State 1, Line 1
Table error: Could not check object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data) due to invalid allocation (IAM) page(s).
Msg 2534, Level 16, State 2, Line 1
Table error: page (1:1100031), whose header indicates that it is allocated to object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data), is allocated by another object.
Msg 2534, Level 16, State 2, Line 1
Table error: page (1:1100200), whose header indicates that it is allocated to object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data), is allocated by another object.
Msg 2534, Level 16, State 2, Line 1
Table error: page (1:1100201), whose header indicates that it is allocated to object ID 373210913, index ID 1, partition ID 72057701886525440, alloc unit ID 72057702118457344 (type In-row data), is allocated by another object.
There are 14 rows in 3 pages for object "searchfull_dummy_1049".
CHECKDB found 0 allocation errors and 6 consistency errors in table 'searchfull_dummy_1049' (object ID 373210913).
DBCC results for 'foldersRecherche'.
There are 0 rows in 0 pages for object "foldersRecherche".
DBCC results for 'wf'.
There are 0 rows in 0 pages for object "wf".
DBCC results for 'searchfull_dummy_1663'.
Ich habe versucht, die gestrige Sicherung zu verwenden, die Datenbank auf demselben Server mit einem neuen Datenbanknamen wiederhergestellt und eine DBCC-Update-Verwendung (0) für die Datenbank ausgeführt. Anschließend hat DBCC CHECKDB keine Fehler mehr in der neu wiederhergestellten Datenbank angezeigt.
Ich habe das gleiche Verfahren auf die Produktionsdatenbank angewendet, aber dies hat das Problem in der Produktionsdatenbank nicht behoben. Ich erhalte die gleichen Fehler wie oben.
Antworten:
Wenn die Reihenfolge ist:
Wahrscheinlich sind Festplatten in einem Array oder einer anderen Komponente des E / A-Subsystems ausgefallen oder ausgefallen. Persönlich möchte ich den Problemserver so schnell wie möglich ausschalten!
Nachtrag: Grundursache des Problems:
Wie sich herausstellte, stellte ich fest, dass wir bei der Verwendung von Diskeeper (aus geschäftlichen Gründen) immer noch eine alte Version verwenden: 14.0.896. Mit dieser Version stoßen wir auf Nachrichten wie:
Eine Erklärung finden Sie in Paul Randals Blog hier
Link zu DiskKeeper Fix finden Sie hier
Interessantes Diskeeper-Whitepaper zur Datenbankdefragmentierung hier
quelle