Comprobación interna de consistencia del software gds: cómo recuperar bases de datos Firebird/InterBase
Oleg Matveev, 20-Nov-2014
Cuando una instancia de Firebird (o InterBase) no puede realizar alguna operación sin garantizar que la consistencia de la base de datos no se verá afectada, genera un error (bugcheck) e interrumpe la operación actual.
Dicho texto de error de Firebird comienza con el prefijo obligatorio “internal gds software consistency check (can’t continue after bugcheck)” (para versiones recientes de Firebird es “internal Firebird software consistency check”), y luego sigue el texto real del error (como “decompression overran buffer (179)”).
A menudo, los errores de “internal software consistency check” significan que la base de datos de Firebird está corrupta (sin embargo, no es una regla), es decir, la consistencia de la imagen interna de la base de datos está rota y debe corregirse para continuar con el trabajo normal.
Si ve este error en su firebird.log o como mensaje de error en su aplicación, ejecute este comando para asegurarse de que su base de datos esté bien:
gfix.exe -v -full -user SYSDBA -pass masterkey ruta_a_su_base_de_datos
Si la validación de gfix devuelve errores, la base de datos está corrupta y requiere recuperación.
Intente primero la recuperación con gfix:
gfix.exe -mend -ig -user SYSDBA -pass masterkey ruta_a_su_base_de_datos
y luego haga una copia de seguridad de la base de datos:
gbak.exe -b -g -user SYSDBA -pass masterkey ruta_a_su_base_de_datos ruta_a_la_copia
y restaure:
gbak.exe -c -v -user SYSDBA -pass masterkey ruta_a_la_copia ruta_a_la_nueva_base_de_datos
Si hay un problema durante gfix/gbak, recupere la base de datos corrupta con la herramienta IBSurgeon FirstAID - la mayoría de los errores de “internal Firebird consistency check” se pueden corregir con ella; FirstAID fue diseñada específicamente para tratar con corrupciones graves de bases de datos.
Además, si tiene una base de datos Firebird o InterBase corrupta, por favor contacte con nuestro soporte: [email protected] y proporcione el texto completo del error (o una captura de pantalla).