J'utilise plusieurs versions différentes de Firebird (2.0, 2.1) sur plusieurs serveurs Windows d'entrée de gamme dotés de matériels très différents. Le seul point commun entre eux est qu'ils exécutent la même application maison avec la même structure de base de données.
Dernièrement, j'ai constaté des ralentissements massifs sur plusieurs serveurs. Il s'avère que la base de données est corrompue, donc à chaque fois qu'elle se brise, je dois la réparer, la sauvegarder et la restaurer, et tout va bien pendant un certain temps (1 à 2 semaines), puis cela se répète à nouveau. Heureusement, je n'ai constaté aucune perte de données ni aucun dommage... pour l'instant. Le problème, c'est que chacune de ces interruptions de service entraîne une perte de productivité, et souvent des déplacements en voiture pour moi, car certaines des bases de données sont situées dans des endroits éloignés.
J'ai essayé de trouver ce qui cause la corruption, mais je n'y suis pas parvenu. Le fait qu'il fonctionne sur un matériel différent indique qu'il ne devrait pas s'agir d'un problème matériel.
Si nous excluons les problèmes de matériel, j'ai le mauvais pressentiment qu'il s'agit d'un bogue dans Firebird, car je ne fais rien d'extraordinaire via SQL. Avez-vous une idée de la façon de découvrir exactement ce qui cause la corruption et, si possible, de résoudre le problème ?
[edit] Selon la première réponse : J'obtiens plusieurs problèmes différents dans firebird.log :
INET/inet_error: read errno = 10054
INET/inet_error: select in packet_receive errno = 10038
Relation has 12 orphan backversions (5 in use) in table LIMITAI (139)
Index 1 is corrupt on page 61700 level 1. File: ..\..\..\src\jrd\validation.cpp, line: 1659 (repeats for multiple pages and index numbers)
Page 50801 is an orphan (repeats for multiple pages)