Wir haben eine SQL 2000-Datenbank. Der Server stürzte aufgrund eines Raid-Array-Fehlers ab. Wenn wir jetzt DBCC CHECKDB ausführen, erhalten wir den Fehler, dass auf 9 Seiten 27 Konsistenzfehler vorliegen.
Wenn wir DBCC PAGE auf diesen Seiten ausführen, erhalten wir Folgendes:
Msg 8939, Level 16, State 106, Line 1
Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (m_freeCnt == freeCnt) failed. Values are 2 and 19.
Msg 8939, Level 16, State 108, Line 1
Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (emptySlotCnt == 0) failed. Values are 1 and 0.
Da der angegebene Index nicht geclustert ist und von einer eindeutigen Konstante erstellt wird, die zwei Spalten enthält, haben wir versucht, den Index zu löschen und neu zu erstellen. Dies führte zu folgendem Fehler:
CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2. Most significant primary key is '3280'.
The statement has been terminated.
Jedoch läuft
Select var_id,result_on
from tests
group by var_id,result_on
having count(*)>1
Gibt 0 Zeilen zurück.
Folgendes planen wir:
- Stellen Sie eine Pre-Server-Absturzkopie der Datenbank wieder her und führen Sie DBCC CHECKDB aus
- Wenn dies sauber zurückgibt, stellen Sie die Wiederherstellung ohne Wiederherstellung wieder her
- Wenden Sie alle nachfolgenden TLOG-Sicherungen an
- Stoppen Sie die Produktions-App, erstellen Sie eine Endprotokoll-Sicherung und wenden Sie diese ebenfalls an
- Löschen Sie die Produktdatenbank und benennen Sie die frisch wiederhergestellte Datenbank um, damit sie erstellt wird
- Starten Sie die Produkt-App
Könnte jemand bitte Löcher in diesen Ansatz schlagen? Vielleicht einen anderen Ansatz vorschlagen? Was wir brauchen, ist minimale Ausfallzeit.
SQL 2000 DB Größe 94 GB Die Tabelle mit beschädigten Seiten enthält mehr als 460 Millionen Datenzeilen
Danke für die Hilfe.
Raj