Como seguramente sabes, una Base de Datos puede dañarse (corromperse) por diversas razones si hay problemas en el hardware, en el software o en el manejo humano de ella.

Es por lo tanto importante que de vez en cuando verifiques que se encuentra operativa y en buen estado.

Los pasos a seguir son los siguientes:

1. Abrir la ventanita “Símbolo del sistema”

2. Escribir los comandos: SET ISC_USER=SYSDBA y SET ISC_PASSWORD=masterkey (o la que sea la contraseña del usuario SYSDBA)

VERIFICANDO1(si haces clic en la imagen la verás más grande)

La utilidad de esos SET es evitar tener que escribir el nombre del usuario (en este caso: SYSDBA) y la contraseña del usuario (en este caso: masterkey) en los comandos GFIX y GBAK que se usarán a continuación. En otras palabras, si escribimos los SET de arriba entonces no necesitaremos escribir nombre de usuario y contraseña ni en GFIX ni en GBAK.

3. Copia tu Base de Datos con otro nombre, porque la verificación se hará en la copia, no en la Base de Datos original. 

IMPORTANTE: No intentes copiar la Base de Datos directamente usando el Explorador del Windows, WinZip, WinRar, 7Zip o programas similares o lo que obtendrás será una Base de Datos corrupta. La forma correcta de realizar la copia (backup) se explica en este artículo: https://firebird21.wordpress.com/2013/07/03/los-metodos-para-hacer-backup/

NOTA: De ser posible, todos los pasos que vienen a continuación hazlos en otra computadora

4. Valida la Base de Datos

GFIX -validate -full MiBaseDatos.fdb

5. Si se encontró algún error, prueba con mend

GFIX -mend -full -ignore MiBaseDatos.fdb

6. Vuelve a validar la Base de Datos

GFIX -validate -full MiBaseDatos.fdb

7. Si hay algún error, prueba con GBAK

GBAK -backup -verbose -ignore -garbage MiBaseDatos.fdb MiBackup.fdk

8. Finalmente, intenta restaurar el backup

GBAK -create -verbose MiBackup.fdk MiBaseDatos.fdb

9. Si hay errores, pero puedes conectarte a la Base de Datos extrae una tabla por vez para detectar cual tabla (o tablas) está con errores. Si usas el programa EMS SQL Manager puedes conseguirlo ubicándote sobre el nombre de la tabla y luego haciendo clic con el botón derecho:

VERIFICANDO2

(si haces clic en la imagen la verás más grande)

Luego trata de hacer un SELECT sobre esa tabla, primero sin usar un índice, la segunda vez usando un índice ascendente y la tercera vez usando un índice descendente. De esta manera podrás saber cuales son las filas que están dañadas ya que los SELECT te mostrarán las filas que están ok y se detendrán en las que estén con errores.

NOTA: Los índices deben ser simples, o sea de una sola columna, no uses índices compuestos por varias columnas para esta verificación.

IMPORTANTÍSIMO:

Si descubres que una Base de Datos está corrupta debes detener su utilización INMEDIATAMENTE porque nuevas operaciones en ella (INSERT, UPDATE, DELETE, FETCH) solamente conducirán a más corrupción.

Artículos relacionados:

Los métodos para hacer backup

El índice del blog Firebird21

Anuncios