1 votes

Causes de la corruption de la base de données Firebird

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)

3voto

reconbot Points 1670

Vérifiez le fichier firebird.log. Il peut contenir des informations importantes sur ce qui ne va pas.
Vérifiez comment votre application gère les transactions. Firebird n'aime pas les transactions qui s'éternisent. Elles entraînent des ralentissements et finalement (selon la charge, etc.) des pannes de serveur.

Pour les problèmes de performance, je recommande Moniteur Sinática .

hth

0voto

Andrei K. Points 111

Vérifiez vos serveurs par rapport à la liste suivante :

  1. La dernière version de Firebird est installée
  2. Le mode d'écriture forcée pour la base de données est activé
  3. Le système de fichiers NTFS est utilisé
  4. Le système est équipé d'un onduleur (si ce n'est pas le cas, désactivez le cache d'écriture des disques durs).
  5. Le matériel est fiable (pas de système bloqué à cause d'une mauvaise mémoire, pas de secteurs défectueux, etc.)
  6. L'utilisation de RAID avec un cache mémoire protégé est recommandée.

En suivant ces simples règles, nous avons des serveurs qui fonctionnent depuis des années sans aucun incident.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X