Recuperar base de datos MySQL o SQL Server corrupta

Resumen del artículo

La corrupción de bases de datos MySQL InnoDB o SQL Server puede paralizar una empresa. Aprende a diagnosticar, recuperar y prevenir la pérdida de datos con innodb_force_recovery, DBCC CHECKDB y estrategias de backup.

Compartir:

Recuperar base de datos MySQL o SQL Server corrupta

La corrupción de una base de datos es una de las emergencias más graves que puede sufrir una empresa. A diferencia de la pérdida de ficheros simples, una base de datos corrupta puede inutilizar completamente una aplicación crítica: un ERP, un e-commerce, un sistema de gestión hospitalaria o un portal de clientes. En este artículo explicamos las causas más comunes de corrupción en MySQL (InnoDB y MyISAM) y SQL Server, las técnicas de recuperación disponibles, cuándo puedes intentarlo tú mismo y cuándo necesitas un especialista, y cómo prevenir que vuelva a ocurrir.

Causas más comunes de corrupción de bases de datos

Las bases de datos no se corrompen sin motivo. Detrás de casi todos los casos hay una de estas causas:

  • Apagado abrupto del servidor: Un corte eléctrico o un reset forzado durante una escritura puede dejar transacciones incompletas y archivos en estado inconsistente. Es la causa número uno en MySQL InnoDB sin UPS.
  • Fallo del disco duro o SSD: Sectores defectuosos en el disco donde residen los archivos de base de datos (ibdata1, .ibd, .MYD, .mdf, .ldf) generan corrupción a nivel de página que el motor no puede reparar por sí solo.
  • Fallo de RAID: La reconstrucción incorrecta de un array (especialmente tras un segundo fallo en RAID 5) puede introducir datos erróneos en los archivos de base de datos.
  • Bug del motor de base de datos: Versiones antiguas de MySQL tienen bugs documentados en InnoDB que pueden corromper el tablespace bajo determinadas condiciones de carga alta.
  • Modificación manual incorrecta: Editar directamente los archivos binarios, mover archivos .ibd sin seguir el procedimiento de transportable tablespaces, o restaurar backups incompatibles.
  • Ransomware o ataque malicioso: Algunas cepas corrompen deliberadamente los archivos de base de datos antes de cifrarlos para maximizar el daño.

MySQL InnoDB: niveles de recuperación forzada (innodb_force_recovery)

MySQL InnoDB tiene un mecanismo integrado de recuperación para situaciones de corrupción: la variable innodb_force_recovery. Permite arrancar el servidor en modo lectura aunque haya inconsistencias, facilitando la exportación de datos antes de que la situación empeore.

NivelDescripciónCuándo usarlo
1Omite la recuperación del undo log de transacciones incompletasFallo en el crash recovery
2No ejecuta el thread de rollback en backgroundEl nivel 1 no arranca el servidor
3No intenta hacer rollback de transacciones al recuperarBloques corruptos en el undo log
4Omite la comprobación de integridad de las páginas InnoDBPáginas corruptas que impiden el arranque
5No comprueba las páginas del undo log al arrancarCorrupción profunda del undo tablespace
6No descarga cambios del buffer pool, omite el forward redoÚltimo recurso antes del especialista

Procedimiento básico: Añade innodb_force_recovery=1 en la sección [mysqld] de tu my.cnf o my.ini. Si MySQL arranca, exporta inmediatamente todas las bases de datos con mysqldump --single-transaction. Si no arranca, prueba el nivel 2, luego 3, y así sucesivamente. Con nivel 4 o superior, el servidor arranca en modo solo lectura. Nunca uses innodb_force_recovery en producción activa. Es exclusivamente para recuperar datos y migrar a una instancia limpia.

MySQL MyISAM: CHECK TABLE y REPAIR TABLE

Las tablas MyISAM (menos comunes desde MySQL 5.5 pero presentes en instalaciones antiguas como WordPress sobre versiones legadas) tienen sus propias herramientas de reparación integradas en el motor:

  • CHECK TABLE nombre_tabla; — Verifica si la tabla tiene errores y describe el tipo de corrupción.
  • REPAIR TABLE nombre_tabla; — Intenta reparar la tabla. Funciona en la mayoría de casos de corrupción lógica sin daño físico.
  • myisamchk -r tabla.MYI — Herramienta de línea de comandos para reparación cuando el servidor no puede arrancar.

Advertencia importante: Si el fallo proviene de un disco con sectores defectuosos, la reparación puede empeorar la situación al escribir sobre los mismos sectores dañados. Clona siempre el disco antes de cualquier operación de reparación cuando hay indicios de fallo físico del dispositivo.

SQL Server: DBCC CHECKDB y opciones de reparación

En SQL Server, el comando equivalente es DBCC CHECKDB, que verifica la integridad lógica y física de todos los objetos de la base de datos:

  • DBCC CHECKDB ('nombre_bd') WITH NO_INFOMSGS; — Comprobación completa, solo muestra errores.
  • DBCC CHECKDB ('nombre_bd', REPAIR_FAST); — Reparaciones menores sin pérdida de datos.
  • DBCC CHECKDB ('nombre_bd', REPAIR_REBUILD); — Reconstruye índices y repara sin pérdida de datos en la mayoría de casos.
  • DBCC CHECKDB ('nombre_bd', REPAIR_ALLOW_DATA_LOSS); — Último recurso: puede eliminar páginas o filas corruptas. Implica pérdida potencial de datos reales.

Los archivos clave de SQL Server son el MDF (datos principales), NDF (datos secundarios) y LDF (log de transacciones). Un LDF corrupto es frecuente tras cierres abruptos. En muchos casos puede desprenderse si el MDF era consistente en el último checkpoint. Los especialistas pueden reconstruir el LDF o extraer datos directamente del MDF con herramientas como Stellar Repair for MS SQL o ApexSQL Recover.

Cuándo intentarlo tú mismo vs. llamar a un especialista

SituaciónDIY posibleNecesitas especialista
MySQL no arranca, disco sanoSí (innodb_force_recovery 1–3)Si nivel 4+ no funciona
Tablas MyISAM corruptas, disco sanoSí (REPAIR TABLE)Si el disco tiene errores físicos
SQL Server con errores DBCC, disco sanoSí (REPAIR_REBUILD)Si REPAIR_ALLOW_DATA_LOSS pierde datos críticos
Fallo físico del disco (sectores malos)NoSí (laboratorio + clonado previo)
RAID degradado o fallado con BD en élNoSí (reconstrucción RAID + BD)
Ransomware ha cifrado .ibd o .mdfNoSí (análisis de cepa primero)

Precios de recuperación de bases de datos

El coste de recuperación profesional varía según la complejidad del caso:

  • Corrupción lógica simple (disco sano, innodb_force_recovery, DBCC): 300–500 €. Generalmente resuelto en 24-48 horas.
  • Fallo físico del disco con base de datos: 400–800 €. Implica primero la recuperación del disco y luego el tratamiento de la base de datos.
  • RAID con base de datos corrupta: 600–1.500 €. La reconstrucción del array es el paso previo obligatorio.
  • Bases de datos de gran tamaño (más de 100 GB) o múltiples instancias: 800–2.000 €.

Prevención: cómo evitar la corrupción de bases de datos

La mejor recuperación es la que no necesitas. Estas medidas reducen drásticamente el riesgo:

  • UPS (alimentación ininterrumpida): El corte eléctrico es la causa número uno. Un UPS adecuado da tiempo suficiente para un apagado limpio del servidor.
  • Monitorizar el estado SMART del disco: Herramientas como Zabbix, Nagios o simplemente smartctl alertan de sectores reasignados antes de que el fallo sea total.
  • Backups verificados con frecuencia: Para MySQL, mysqldump --single-transaction diario o Percona XtraBackup para backups en caliente sin tiempo de inactividad. Para SQL Server, jobs con backups diferenciales y verificación automática.
  • RAID adecuado + monitoreo: RAID 1 o RAID 5 con spare disk activo y alertas por email cuando un disco empiece a degradarse.
  • Actualizar el motor de BD: MySQL 8.0+ y SQL Server 2019+ tienen mejoras significativas en la resiliencia ante fallos inesperados respecto a versiones anteriores.

Herramientas DIY para bases de datos MySQL: resumen rápido

Si no tienes experiencia con la línea de comandos de MySQL, existen interfaces gráficas que pueden ayudarte en los primeros pasos:

  • phpMyAdmin: Permite ejecutar REPAIR TABLE y CHECK TABLE desde el navegador. Incluido en la mayoría de hostings.
  • MySQL Workbench: Herramienta oficial de Oracle. Permite conectarse al servidor, lanzar queries de reparación y exportar datos aunque el servidor esté en modo recovery.
  • HeidiSQL: Cliente MySQL gratuito para Windows. útil para exportar tablas accesibles cuando otras están corruptas.
  • Stellar Repair for MySQL: Herramienta de pago (49 USD) que puede reparar archivos .frm e InnoDB directamente sin necesidad de que el servidor arranque.

¿Tu base de datos no arranca o ha perdido datos? Solicita ahora tu diagnóstico gratuito. Nuestros técnicos especializados en recuperación de bases de datos te darán una valoración en menos de 2 horas sin ningún compromiso.

¿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

Técnico Especialista

Técnico en Recuperación de Datos — RecuperaTusDatos

Técnico certificado con más de 12 años de experiencia en recuperación de datos de discos duros, SSD, RAID, memorias flash y dispositivos móviles. Laboratorio propio con sala limpia ISO Clase 5, sin intermediarios.

ISO 9001 ISO 27001 Certificado
Publicado: 15/10/2025 7 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