Una orden de reparación puede reconstruir índices o marcar una tabla como utilizable sin corregir el suceso que la dañó. Si el error regresa, investiga presión de disco, cierres bruscos de MySQL, fallos de almacenamiento, un método incompatible o código que vuelve a estropear los datos.
Deja de tratar cada recaída como un caso aislado. Conserva una cronología y protege los datos actuales antes de otra reparación.
Compara cada recaída
Registra tabla, código MySQL, hora, función y salida de reparación para cada incidente. Determina si falla siempre la misma tabla o índice o si el daño se desplaza.
Cronología:
primer error
método y resultado de reparación
reinicio o evento de disco
primera actividad de escritura
hora de la recaída
motor de la tabla
Oculta valores de consultas y datos de clientes.
Confirma que las copias sean utilizables
Haz un volcado actual cuando sea posible y conserva una copia conocida anterior. Lee los errores del volcado: «completado» no garantiza que se exportaran todas las tablas.
Prueba la restauración en una base o servidor aislado. Confirma recuentos y acceso desde la aplicación.
No guardes todas las copias en el mismo disco problemático ni sobrescribas la última válida.
Revisa disco y sistema de archivos
Comprueba espacio, inodos, sistema de archivos de datos y logs de MySQL y alertas del alojamiento. Un volumen lleno puede interrumpir escrituras y hacer caer tablas.
En un VPS, revisa los errores del kernel y almacenamiento con un administrador autorizado. En hosting gestionado, pide pruebas al proveedor.
Liberar espacio puede detener el fallo inmediato, pero no demuestra que el disco esté sano.
Examina el historial de cierres de MySQL
Busca apagados no limpios, recuperación, procesos terminados por falta de memoria y reinicios forzados alrededor de cada recaída. MySQL debe detenerse correctamente antes del mantenimiento.
No reinicies repetidamente como diagnóstico. Guarda antes memoria, procesos y registro.
Si copias o importaciones coinciden con los picos, reprográmalas y acótalas.
Usa una reparación adecuada al motor
Las herramientas de MyISAM no resuelven corrupción InnoDB. wp-admin/maint/repair.php ejecuta comprobaciones, pero no repara hardware ni todos los fallos InnoDB.
SHOW TABLE STATUS LIKE 'wp_example';
CHECK TABLE wp_example;
Indica tablas concretas y comienza con una cuenta de solo lectura autorizada. Escala los errores InnoDB al proveedor o administrador.
Investiga escrituras recurrentes
Un plugin puede repetir migraciones de esquema, escribir datos excesivos o detenerse a mitad. Relaciona propietario y modificaciones de la tabla con cron y actualizaciones.
Desactiva la migración programada responsable en staging y reproduce. Actualiza o sustituye código abandonado.
No borres la tabla hasta confirmar que sus datos son reconstruibles y el proveedor documenta su creación.
Comprueba memoria y capacidad
Los cierres por OOM, conexiones agotadas y bloqueos largos pueden provocar una caída brusca. Revisa RAM, swap, buffers MySQL y cargas concurrentes.
Ajusta según medidas, no copiando configuraciones genéricas. Reservar buffers por encima de la RAM física empeora las caídas.
Evita que las tareas web y de copia consuman todos los recursos que necesita MySQL.
Observa después de reparar
Después de recuperar, registra tamaño, filas, uptime MySQL, disco libre y último cierre limpio. Ejecuta escrituras controladas en la función afectada y revisa el registro tras cada ciclo.
No programes CHECK TABLE agresivo y continuo sobre tablas grandes; puede crear su propia carga. Sigue las indicaciones del motor y alerta por la firma original, umbral de disco y reinicio no limpio.
Restaura, repara y vigila
Corrige almacenamiento, capacidad o aplicación antes de la reparación o restauración final. Usa un mantenimiento que impida escrituras peligrosas durante la recuperación.
Verifica la función, registros recientes y nuevas escrituras durante varios ciclos.
El mantenimiento recurrente debe probar restauraciones y alertar por disco, OOM y cierres bruscos. El éxito significa que la causa dañina ha desaparecido, no que sea posible pulsar otra vez el botón de reparar.