Cómo comprobar si una base de datos corrupta es irrecuperable
22/4/2019
Un editor hexadecimal es la mejor forma de analizar el estado de un archivo dañado de Microsoft Access y de estimar las posibilidades de recuperar los datos.
En este artículo explico como identificar algunos tipos de daño mayor en archivos de Access. El objetivo es encontrar anomalías en el contenido binario del archivo.
Para ilustrar las explicaciones, usaré en adelante algunos de los archivos del proyecto Cómo reparé 28 bases de datos dañadas.
“Mirando” dentro del archivo
Cuando necesito reparar un archivo dañado de Access, lo primero que hago, antes que ninguna otra cosa, es comprobar si está completo. Un archivo que parece normal por su icono o su tamaño, podría estar completamente vacío de datos.
Una buena forma de comprobar si un archivo de Access contiene realmente datos es "mirar" su contenido binario.
Suena complicado pero no lo es tanto. Se trata simplemente de visualizar los bytes que hay dentro para intentar detectar, a vista de pájaro, si el archivo tiene huecos vacíos en su interior.
El editor hexadecimal
Para visualizar el contenido "crudo" de un archivo se puede usar cualquier editor hexadecimal. En este articulo usaremos la utilidad gratuita HxD. Para seguir esta guía te recomiendo descargarla e instalarla.
El hexadecimal es una notación numérica muy usada en informática. Todos estamos acostumbrados a la notación decimal que usa 10 dígitos desde el 0 hasta el 9. El hexadecimal usa 16 dígitos, añadiendo 6 más después del 9, que se representan como letras desde la A a la F.
Si contamos en hexadecimal, tendremos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, (...), 19, 1A, 1B, etc.
No es más que otra forma de expresar los mismos números.
Una vez instalada la herramienta, abrimos con ella el archivo accdb o mdb desde el menú File | Open.
Podemos observar tres áreas diferenciadas:
Área central
Los bytes del archivo, cada uno expresado como 2 dígitos hexadecimales. Por ejemplo 00, 53, 6E o FF. Para nuestro propósito sólo necesitamos entender que cada par representa un byte.
Área derecha
Los mismos bytes pero ahora interpretados como letras (ASCII). Como no todos los bytes tienen una correspondencia en letra, muchos bytes aparecerán como puntos o caracteres "raros".
Área izquierda
La posición, contada en número de bytes desde el inicio del archivo.
Ahora, veamos como se ve un archivo no dañado de Access y luego algunos archivos dañados, en el editor hexadecimal:
Archivo de Access en editor hexadecimal
Usando la barra de desplazamiento para recorrer el archivo, vemos alternarse pequeñas zonas con datos, con otras que sólo contienen ceros (00). Esto es lo normal.
Si avanzamos a una velocidad uniforme encontramos datos a lo largo de todo el archivo:
Base de datos de Access en editor hexadecimal
Vídeo sin sonido
Base de datos con la cabecera dañada
Cualquier archivo de Microsoft Access, ya sea mdb o accdb, de versiones desde 2002 a 2019, debe comenzar con el texto Standard ACE DB y para versiones 2000 y anteriores Standard JET DB.
En este ejemplo, los primeros 4KB han resultado remplazados por datos aleatorios ajenos al archivo.
Compara las dos imágenes:
Cabecera correcta
Cabecera dañada
Archivo de Access sin datos reales
Este otro archivo ha perdido los datos originales que han sido remplazados con ceros. A pesar de tener un tamaño normal, el archivo no contiene ninguna información. Este archivo es irrecuperable.
No sé cuáles son las causas de este problema pero me lo encuentro habitualmente en archivos de clientes. En base a mi experiencia, la mayoría de las veces se pierden los datos de la parte final del archivo. La extensión de la zona perdida varía entre un 10% y un 100%.
Archivo de Access sin datos reales
Vídeo sin sonido
Pérdida parcial de datos
Similar al ejemplo anterior pero con una pérdida de datos parcial. Falta el 10% final del archivo accdb.
Observa como al final de archivo solo hay ceros:
Faltan datos al final del archivo
Vídeo sin sonido
Conclusiones
El uso de un visor hexadecimal es una excelente herramienta diagnóstica para analizar archivos dañados de Microsoft Access y descartar problemas mayores en el archivo.
Si te asusta la palabra hexadecimal, puedes usar una herramienta de recuperación de datos para inspeccionar en la vista previa cuanta información es recuperable.
Puedes leer más sobre recuperación de datos de MS Access en nuestro blog ACCDB Crash Help.