Sonntag, 17. Mai 2009

RAID? Kann, muss nicht, hilft nicht immer.

Mit RAID - Systemen kann man viele Vorteile erreichen. Wenn allerdings der RAID-Controller defekt ist, kann bereits ein fehlerhaftes Byte Ihre mehrere Gigabyte große Datenbank zur Strecke bringen.

Die Auswirkungen sind enorm und der Fehler -wenn überhaupt - nur schwer zu finden. Schlimmstenfalls bauen Sie Ihre Datenbank also auf demselben System neu auf und stehen wenige Stunden später vor demselben Problem.

Allen Technikgläubigen sei ins Stammbuch geschrieben, dass man noch so tief in die Tasche greifen kann für einen Markencontroller seiner Wahl: wir haben so einen entsorgt.

Meine Empfehlung bei einer zerstörten Datenbank lautet: Wenn Sie nicht wissen, was die Ursache dafür war, wechseln Sie auf den Ausfallserver.

Eine Reparatur (z.B. FBFirstAid) hinterläßt immer Spuren und niemals einen vollständigen Datenbestand. Arbeiten Sie mit der letzten Sicherung weiter und nutzen Sie die reparierte Datenbank, um verlorene Daten zu ergänzen.

Das nachfolgende firebird.log zeigt (natürlich stark verkürzt) die Auswirkungen eines defekten Controllers. Wenn Sie auch nur eine Zeile davon bei sich finden, haben Sie ein Hardwareproblem.

Versprochen.

firebird.log

internal gds software consistency check (wrong record length (183), file: vio.cpp line: 1109)

internal gds software consistency check (cannot find record fragment (248), file: dpm.cpp line: 1181)

internal gds software consistency check (decompression overran buffer (179), file: sqz.cpp line: 222)

Index 5 is corrupt on page 203839 level 140544214827009.
File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE (141)

Record 9267366 is wrong length in table TESTTABLE2 (142)

Fragmented record 9267368 is corrupt in table TESTTABLE2 (142)

Chain for record 9267372 is broken in table TESTTABLE2 (142)

Page 238166 wrong type (expected 5 encountered 7)

Data page 238225 (sequence 20685) is confused in table TESTTABLE2 (142)

Relation has 4294966985 orphan backversions (4354 in use) in table TESTTABLE2 (142)

Index 3 is corrupt on page 188383 level 140544214827009. File: ../src/jrd/validation.cpp, line: 140544214828627
in table TESTTABLE3 (146)

Page 238382 doubly allocated

Index 8 is corrupt (missing entries) in table TESTTABLE (173)

Page 152989 is an orphan

Keine Kommentare:

Kommentar veröffentlichen