Vérification interne de cohérence du logiciel gds - comment récupérer les bases de données Firebird/InterBase
Oleg Matveev, 20-Nov-2014
Lorsqu’une instance Firebird (ou InterBase) ne peut pas effectuer une opération sans garantie que la cohérence de la base de données ne sera pas affectée, elle génère une erreur (bugcheck) et interrompt l’opération en cours.
Ce texte d’erreur Firebird commence par le préfixe obligatoire « internal gds software consistency check (can’t continue after bugcheck) » (pour les versions récentes de Firebird, il s’agit de « internal Firebird software consistency check »), suivi du texte d’erreur réel (comme « decompression overran buffer (179) »).
Souvent, les erreurs « internal software consistency check » signifient que la base de données Firebird est corrompue (cependant, ce n’est pas une règle) - c’est-à-dire que la cohérence de l’image interne de la base de données est rompue et doit être réparée pour poursuivre le travail normal.
Si vous voyez une telle erreur dans votre firebird.log ou comme message d’erreur dans votre application, exécutez cette commande pour vous assurer que votre base de données est correcte :
gfix.exe -v -full -user SYSDBA -pass masterkey path_to_your_databaseSi la validation gfix renvoie des erreurs, la base de données est corrompue et nécessite une récupération.
Essayez d’abord la récupération avec gfix :
gfix.exe -mend -ig -user SYSDBA -pass masterkey path_to_your_databasepuis sauvegardez la base de données :
gbak.exe -b -g -user SYSDBA -pass masterkey path_to_your_database path_to_backupet restaurez :
gbak.exe -c -v -user SYSDBA -pass masterkey path_to_backup path_to_new_databaseS’il y a un problème lors de gfix/gbak, récupérez la base de données corrompue avec l’outil IBSurgeon FirstAID - la majorité des erreurs « internal Firebird consistency check » peuvent être corrigées avec cet outil ; FirstAID a été spécifiquement conçu pour traiter les corruptions graves de bases de données.
De plus, si vous avez une base de données Firebird ou InterBase corrompue, veuillez contacter notre support : [email protected] et fournissez le texte complet de l’erreur (ou une capture d’écran).