Während der Durchführung einer Autopsie in einer Datenbank vor kurzem lief ich in einen Fehler, der von Interesse sein können einige Leute.
Versuche, sich an die Datenbank nicht mit der Fehlermeldung "GDS interne Konsistenzprüfung, nicht finden können Spitze." Überprüfen der Datenbank Kopf zeigte, dass die nächste Transaktion wurde 131596294 Anzahl und Größe der Seite war 1024. Wie es passiert, ein 1024-Byte-Seite wird 4016 Transaktion Staaten. Die Einteilung der nächsten Transaktion Zahl von 4016 um die Spitze Seite Sequenznummer gibt 32768,001494. Eine sehr interessante Reihe.
Es ist ein Fehler in InterBase 5.6, 6,01, und die aktuelle Beta-Firebird, die bewirken, dass die Suche nach einer Transaktion Inventar Seite zum Scheitern verurteilt, wenn es mehr als 32767 Seiten Transaktion. Das macht die maximale sichere Transaktions-ID für eine Datenbank mit:
1024 Byte Seiten 131.596.287.
2048 Byte Seiten 265.814.016.
4096 Byte Seiten 534.249.472.
8192 Byte 1071120384 Seiten.
Obwohl diese Zahlen sind groß, diese besondere
Datenbanken mit mehr als 131 Millionen Transaktionen in sechs
Monate.
Vorschläge:
- nicht mit einem 1024 Byte Größe.
- Sie überprüfen Sie Ihre nächste Transaktion Anzahl von Zeit zu Zeit.
- Wenn Sie die nächste Transaktion Anzahl der Nähe des Grenzwertes, Sicherung und Wiederherstellung der Datenbank.
Gfix wird dieses Problem nicht beheben, aber ich kann. (Bitte kontaktieren Sie mich für weitere Details).
Grüße,
Ann

Delicious
Digg
Google
Yahoo