Creo que no hay cosa mas acojonante para un administrador de sistemas, que un cliente te llame y te diga:
«oye jesús ¿que quiere decir Base de datos corrupta?»
…hace unos días me enfrente a esta llamada, creo la adrenalina que solté en el corto recorrido en coche hasta la instalación del cliente, pude equipararse con hacer puenting o nadar con tiburones.
La base de datos esta gestionada por un firebird-2, lo que era antes Interbase de Borland, el servidor corre sobre un Linux/GNU Debian, y la verdad es que en 10 años habia dado ningún problema, pero… ahí estaba ese odioso error:
internal gds software consistency check (can’t continue after bugcheck).
Lo primero llegar allí, santiguarse, y entrar en la sala de servidores, allí estaba ese monstruo riéndose de la gracia que había hecho. Busque las ultimas copias de seguridad, extraer la ultima copia al disco externo, y reiniciar…
El mismo error, vaya si el viejo truco de reiniciar no funciona, esto ya pintaba mal, así que la segunda medida de emergencia de la abuelita e2fsck, chequeo de disco, unos cuantos minutos mas tarde… 0 errores, caguen…
Pues solamente quedaba comprobar la integridad de la copia y comenzar el gbak, recuperación de la copia…. ok la copia era correcta, cosa rara, murphy no debe estar por allí, bueno no había ido tan mal, solamente se había perdido un día de trabajo ;).
El caso aun así, no me convence mucho, el disco bien, el log, no decía nada de caída del servidor, que coño le había pasado a la base de datos, existe un comando llamado gfix, que se encarga de estas cosas, así que no quedo mas que usar gfix, dos ejecuciones mágicas
Este comando muestra los errores encontrados dentro de la base de datos, y se prepara para una recuperación.
gfix -v -full base de datos.gdb -user yo mismo -password mi clave
Una vez detectados el siguiente comando prepara la base de datos para que pueda realizarse un backup.
gfix -mend base de datos.gdb -user yo mismo -password mi clave
Bien, la base de datos a quedo en un estado que permite el backup, asi que ahora es casi simple, crear una copia de seguridad.
gbak -b -v -ig -user yo mismo -password mi clave base de datos.gdb base de datos.gdk
Luego solamente quedara el recuperarla…
gbak -c -user yo mismo -password mi clave -p 2048 base datos.gdk base datos.gdb
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.