Como seguramente sabes, debes revisar constantemente el archivo FIREBIRD.LOG que encontrarás en la carpeta donde instalaste al Firebird para descubrir cualquier error que haya ocurrido.

¿Qué significa el error: “database file appears corrupt“?

Que el archivo de la Base de Datos (el cual usualmente tiene la extensión .FDB) está dañado.

¿Por qué se dañó la Base de Datos?

La causa más común es porque hubo un corte de la energía eléctrica en la computadora donde se encuentra el Servidor mientras se estaba realizando una operación de INSERT, UPDATE, o DELETE.

A veces también podría ocurrir si hay una súbita alta tensión. O si algún descerebrado apagó el Servidor mientras la Base de Datos estaba siendo usada.

Entonces, el problema fue causado por dos motivos:

  1. Se estaba realizando una operación de INSERT, UPDATE, DELETE
  2. En ese instante se detuvo el Servidor del Firebird

Otra causa, tal como señaló Yván Acosta en la sección de comentarios, es que usando el Explorador de Windows o algún programa similar, se haya copiado la Base de Datos. Hay varios métodos seguros para realizar backups de las bases de datos, y alguno de esos métodos seguros hay que usar.

¿Cuál es la solución?

Usar el programa FirstAID (primera ayuda) de IBSurgeon, que encontrarás en www.ib-aid.com

¿Cómo evitar que el problema vuelva a ocurrir?

  1. Primero y elemental, colocarle una UPS (uninterruptible power supply) de buena capacidad a la computadora donde se encuentra el Servidor
  2. Verificar, al menos una vez a la semana que la UPS esté funcionando correctamente. Para ello, cuando nadie esté conectado a la Base de Datos, desenchufar la UPS del tomacorriente y anotar el tiempo que mantiene a la computadora encendida. Las UPS van disminuyendo el tiempo en que sus baterías proveen de carga eléctrica. Jamás hay que creer que una UPS que se instaló hace un año sigue funcionando como cuando era nueva. En la gran mayoría de los casos, eso es falso.
  3. Evitar que la computadora donde se encuentra el Servidor sea apagada.
  4. Evitar que el Servidor sea detenido, manualmente o por algún otro programa.

Con relación al punto 3. tengo una anécdota. En una empresa grande, que tiene decenas de computadoras, súbitamente todo el mundo se desconectó de la Base de Datos, había energía eléctrica, las luces estaban encendidas, las computadoras también, pero no había conexión a la Base de Datos, caos total. ¿Qué había ocurrido? Que la señora de la limpieza, con su escoba había desenchufado al Servidor, y siguió limpiando como si nada, no le importó lo más mínimo porque ni siquiera sabía la importancia de que ese cable estuviera enchufado. Al salir, cerró la puerta de la habitación y como se encuentra alejada de la Administración nadie se percató que unos minutos después la UPS empezó a chillar como loca. Se aprendió la lección, ahora el Servidor está en una habitación aparte y la puerta siempre se mantiene cerrada con llave, por las dudas. Y duplicados de esa llave solamente tienen las personas adecuadas, ninguna “señora de la limpieza” puede entrar.

Con relación al punto 4. hay que tener cuidado con los antivirus u otros programas similares porque podrían detener al Servidor. Es por ese motivo que fuertemente se aconseja que en la computadora donde se encuentra el Servidor del Firebird no se esté ejecutando ningún otro programa, ninguno, ni siquiera un antivirus.

Conclusión:

Una Base de Datos puede corromperse si el Servidor deja de funcionar mientras estaba realizando una operación de INSERT, UPDATE, o DELETE.

El problema puede solucionarse con el programa FirstAID de IBSurgeon, pero lo más conveniente es evitar que el problema ocurra. Para ello, jamás debe detenerse el Servidor si alguien está conectado a la Base de Datos.

Artículos relacionados:

FirstAID de IBSurgeon

Reparación de una Base de Datos corrupta

Manteniendo la Base de Datos en buen estado

Los métodos para hacer backup

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios