Vor ein paar Tagen hat Paul Randall in seinem Artikel Can't I ever get a guarantee? diskutiert, ob man sicher sein kann, dass alles OK ist, wenn der DBCC-CheckDB-Lauf keine Fehler meldete. Er weißt zu Recht darauf hin, dass seit der Prüfung der ersten Seiten inzwischen genau dort ein Problem aufgetreten sein könnte. Das ist natürlich etwas spitzfindig, aber es ist nicht ganz von der Hand zu weisen. Generell bringt sie aber schon eine deutliche Sicherheit, ob das was man sichern will, auch OK ist.
Kann eine Prüfung schaden? Als wir noch den Sybase SQL-Anywhere einsetzten, kam einmal der Verdacht auf, dass eine Datenbank durch die Prüfung zerstört worden sein soll. Dazu muss man wissen, dass man ihn so einstellen kann, dass die Datenbank-Dateien generell geschlossen sind und nur geöffnet werden, wenn jemand darauf zugreift. Zwischen zwei Prüfläufen wurde die Datenbank angeblich nicht angfasst und dennoch war sie bei der vorletzten Prüfung OK und bei der Letzten wurde ein Fehler gemeldet.
Wenn man etwas wackelige Hardware einsetzt, z.B. ein defektes RAM im RAID-Controller, dann kann es schon sein, dass die Datenbank durch das Öffnen/Schließen und den damit verbundenen Checkpoints defekt wird.
Aber bevor ich wegen dieser Möglichkeit mein Sicherungskonzept überdenke, würde ich lieber vor der Datenbank-Prüfung eine Hardware-Prüfung durchführen…