Recuperar base de datos MySQL y SQL Server dañada [2026]

Resumen del artículo

Una base de datos corrompida puede paralizar completamente una empresa. MySQL InnoDB, SQL Server MDF/LDF, PostgreSQL y Oracle tienen estructuras propietarias que requieren conocimiento específico para recuperar los datos cuando los mecanismos internos de recuperación fallan. Explicamos las causas más frecuentes, qué opciones hay antes de llamar a un laboratorio, y cómo se recuperan los datos cuando el backup no existe.

Compartir:

Una base de datos MySQL, SQL Server, PostgreSQL u Oracle corrompida puede paralizar un negocio completo en cuestión de minutos. Los sistemas de base de datos tienen mecanismos internos de recuperación (InnoDB Crash Recovery, SQL Server DBCC), pero cuando estos fallan —por corrupción grave, disco dañado o borrado accidental— la única opción es recuperar los datos directamente de los ficheros binarios de la base de datos. Es un proceso especializado que requiere conocimiento profundo de cada motor.

Recuperación de bases de datos — Datos clave

Motores:
MySQL/MariaDB, SQL Server, PostgreSQL, Oracle
Ficheros clave:
ibdata1, .ibd, .MDF/.LDF, pg_data, datafiles Oracle
Precio:
Desde 400€ (corrupción lógica)
Plazo:
1–5 días laborables según tamaño

Por qué se corrompen las bases de datos

Las bases de datos son sistemas complejos que mantienen múltiples archivos en estado consistente mediante transacciones. Cuando algo interrumpe ese proceso, el resultado es corrupción:

  • Corte de luz durante una transacción activa: El mecanismo write-ahead log (WAL en PostgreSQL, InnoDB redo log en MySQL, transaction log en SQL Server) normalmente permite recuperarse, pero si el disco tiene sectores defectuosos donde está el log, la recuperación falla
  • Disco con sectores defectuosos: Los errores de lectura en páginas de datos o en el tablespace producen corrupción que el motor de base de datos reporta como "table corrupted", "checksum mismatch" o "torn page"
  • Actualización de motor interrumpida: Actualizar MySQL de 5.7 a 8.0 o SQL Server a una versión mayor puede fallar dejando el catálogo del sistema en estado inconsistente
  • DROP TABLE / DROP DATABASE accidental: Uno de los casos más frecuentes — especialmente en entornos de desarrollo donde se ejecuta un script en producción por error
  • Ransomware: Los archivos de base de datos son objetivo prioritario del ransomware por su alto valor
  • RAID degradado con escritura continuada: Operar con un RAID 5 degradado durante mucho tiempo puede producir inconsistencias en los archivos de base de datos

MySQL / MariaDB: recuperación de InnoDB

Estructura de ficheros InnoDB

InnoDB (el motor por defecto de MySQL desde 5.5) almacena los datos en:

  • ibdata1: El tablespace compartido. Contiene el diccionario de datos (información sobre tablas y columnas), el undo log y, opcionalmente, los datos de las tablas si no se usa innodb_file_per_table
  • Archivos .ibd: Un archivo por tabla cuando está activo innodb_file_per_table=ON (por defecto desde MySQL 5.6.6)
  • ib_logfile0, ib_logfile1: El redo log de InnoDB — esencial para la recuperación de transacciones incompletas

Opciones de recuperación nativa: innodb_force_recovery

MySQL tiene un modo de recuperación forzada controlado por innodb_force_recovery (valores 1-6 en my.cnf). Cada nivel desactiva más salvaguardas para permitir arrancar la base de datos y exportar los datos:

  1. Nivel 1 (SRV_FORCE_IGNORE_CORRUPT): Ignora páginas corruptas
  2. Nivel 2: No ejecuta threads en background de InnoDB al arrancar
  3. Nivel 3: No hace rollback de transacciones al arrancar
  4. Nivel 4: Previene operaciones de INSERT, UPDATE y DELETE
  5. Nivel 5: No mira el undo log al arrancar
  6. Nivel 6: No hace forward scan del redo log

Procedimiento: Empieza por el nivel 1 y ve aumentando hasta que MySQL arranque. Cuando lo haga, exporta los datos con mysqldump inmediatamente. No continúes operando en nivel de recuperación.

Recuperación de .ibd sin ibdata1

Si tienes los archivos .ibd pero el ibdata1 está corrupto o lo has perdido, la recuperación es más compleja: necesitas reconstruir el diccionario de datos. Herramientas como InnoDB Recovery Toolkit (Percona) o undrop-for-innodb permiten extraer datos directamente de las páginas InnoDB sin pasar por el motor MySQL.

SQL Server: recuperación de archivos MDF/LDF

Estructura de ficheros SQL Server

  • .MDF (Master Data File): El archivo principal de datos
  • .NDF: Archivos de datos secundarios (bases de datos grandes)
  • .LDF (Log Data File): El transaction log — puede crecer indefinidamente si no se gestiona

Diagnóstico con DBCC CHECKDB

El primer paso ante sospecha de corrupción es ejecutar DBCC CHECKDB('nombre_bd') WITH NO_INFOMSGS. Si devuelve errores, el nivel de severidad indica la gravedad:

  • Severity 16: Corrupción de datos en páginas — requiere restauración o reparación
  • Severity 21-24: Corrupción grave — puede requerir intervención profesional

DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS

DBCC CHECKDB('nombre_bd', REPAIR_ALLOW_DATA_LOSS) intenta reparar la base de datos, pero como su nombre indica, puede perder datos. Úsalo solo como última opción y siempre sobre una copia, nunca sobre la base de datos de producción.

Cuando el LDF está corrupto o falta

Si el archivo LDF falta o está corrupto pero el MDF está intacto, SQL Server permite adjuntar la base de datos solo con el MDF y reconstruir el LDF. Esto crea un nuevo log vacío, pero implica que las transacciones no confirmadas se pierden.

PostgreSQL: corrupción de datos

PostgreSQL almacena los datos en directorios de PGDATA con archivos numerados (relfilenode). La corrupción se detecta con:

  • pg_dump que falla con errores de checksum
  • Errores en el log de PostgreSQL: "invalid page in block", "could not read block"

La herramienta pg_filedump permite inspeccionar las páginas individuales de PostgreSQL y puede extraer datos de páginas parcialmente corruptas. Para corrupción grave, el proceso es similar al de MySQL: acceder directamente a los bloques de datos y reconstruir las filas.

Cuándo se necesita intervención profesional

La recuperación por software tiene sus límites. Se necesita laboratorio profesional cuando:

  • El disco donde está la base de datos tiene fallos físicos (sectores defectuosos, cabezales dañados)
  • Los mecanismos de recuperación nativos del motor no permiten siquiera arrancar
  • La corrupción afecta al diccionario de datos o al catálogo del sistema
  • Los datos se borraron y el servidor ha continuado en funcionamiento (sobreescritura)
  • Servidor en producción que no puede detenerse para un proceso largo de recuperación

Proceso de recuperación de bases de datos en RecuperaTusDatos

  1. Imagen forense: Antes de cualquier acción, se hace una copia sector a sector del disco/servidor afectado
  2. Análisis del motor y versión: Cada versión de MySQL, SQL Server o PostgreSQL tiene diferencias en la estructura interna de sus archivos
  3. Extracción de páginas de datos: Con herramientas especializadas, se extraen directamente las páginas de datos del motor, omitiendo los mecanismos de recuperación que fallan
  4. Reconstrucción del esquema: Si el diccionario de datos está corrupto, se reconstruye el esquema a partir de la estructura interna de las páginas
  5. Exportación verificada: Los datos extraídos se exportan en formato SQL o CSV y se verifican antes de la entrega

Preguntas frecuentes sobre recuperación de bases de datos

Sí, en muchos casos. En MySQL con InnoDB, los archivos .ibd no se sobreescriben inmediatamente tras un DROP TABLE/DATABASE — el espacio se marca como disponible pero los datos físicos permanecen temporalmente. La clave es detener el servidor de base de datos inmediatamente para evitar que el espacio liberado se reutilice con nuevas escrituras. Con el servidor detenido, la recuperación tiene altas probabilidades de éxito.
"Database suspect" significa que SQL Server detectó un problema durante el arranque de la base de datos y la marcó como sospechosa. Las causas más frecuentes son: el archivo LDF falta o está corrupto, el MDF tiene páginas dañadas, o se produjo una corrupción durante un proceso activo. Empieza por revisar el errorlog de SQL Server para identificar el error exacto. Si DBCC CHECKDB devuelve errores de severity 16+, es el momento de llamar a un especialista.
Depende de la complejidad de la corrupción y del tipo de disco. Para corrupción lógica con el disco sano, el proceso (imagen + análisis + extracción) suele completarse en 1-3 días laborables. Si el disco tiene sectores defectuosos, la fase de clonación puede llevar más tiempo. Para bases de datos de misión crítica donde el tiempo de inactividad es muy costoso, ofrecemos servicio urgente en 24h.
Si el nivel 6 de innodb_force_recovery permite arrancar MySQL pero no puedes exportar una tabla concreta, prueba a acceder directamente al archivo .ibd de esa tabla con herramientas como InnoDB Recovery Toolkit de Percona o undrop-for-innodb. Si el archivo .ibd está en un disco con sectores defectuosos, primero necesitas hacer una imagen del disco con una herramienta como ddrescue antes de intentar cualquier recuperación de datos.
Sí, si tienes el certificado y la clave privada de cifrado. SQL Server TDE y MySQL Enterprise Encryption cifran los datos en reposo usando una clave maestra almacenada en el servidor. Si el servidor falla pero tienes el certificado exportado (es la mejor práctica de seguridad), podemos restaurar la base de datos en otro servidor usando ese certificado. Si el certificado se perdió con el servidor, la recuperación de datos cifrados es prácticamente imposible.

¿Necesitas recuperar datos?

Nuestro equipo técnico puede ayudarte. Diagnóstico gratuito en 4 horas, sin compromiso.

  • Precio: Desde 250€ + IVA — sin recuperación, sin coste
  • Plazo: 4–12 días laborables (urgente: 24–48 h)
  • Teléfono: 900 899 002
  • Certificación: ISO 9001 e ISO 27001 (AENOR)

Escrito por

Sergio Martínez

Técnico Especialista en HDD/SSD — RecuperaTusDatos

Técnico especialista en recuperación de datos de discos duros HDD, SSD NVMe y firmware. Más de 8 años trabajando con PC-3000 UDMA y DeepSpar Disk Imager para casos de fallo mecánico, electrónico y de firmware.

PC-3000 UDMA DeepSpar ISO 9001
Publicado: 13/05/2025 10 min de lectura

Servicio disponible en toda España — Recogida gratuita en 24h

Recibe consejos y alertas de recuperación de datos

Guías prácticas, novedades y consejos para proteger tus datos. Sin spam.

Entérate de todo lo nuevo

Técnica Ingeniería y Robótica Aplicada S.L. como responsable del tratamiento tratará tus datos con la finalidad de dar respuesta a tu consulta o petición. Puedes acceder, rectificar y suprimir tus datos, así como ejercer otros derechos consultando la información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.

Prometemos enviarte sólo información interesante.

Diagnóstico gratuito 900 899 002 WhatsApp WhatsApp
Llamar Te llamamos Diagnóstico

¿Necesitas recuperar datos?

Diagnóstico 100% gratuito y sin compromiso.
Si no recuperamos tus datos, no cobramos.

Solicitar diagnóstico gratuito