¿Qué causa que las tablas necesiten ser reparadas?

De vez en cuando me sale un error al decir que una de mis tablas "está marcada como accidentada y debe ser reparada". Luego hago una TABLA DE REPARACIÓN y la reparo. ¿Qué causa que se marquen como bloqueados y cómo puedo evitarlo? Estoy usando tablas MyISAM con MySQL 5.0.45.

0

4 Respuestas

Por lo general, ocurre cuando la base de datos no se cierra correctamente, como un bloqueo del sistema o un problema de hardware.

0
agregado

Podría ser muchas cosas, pero MySQL Performance Blog menciona errores de memoria, sistema operativo o MySQL que podrían causar daños ocultos. Además, eso y otro artículo mencione varias cosas a tener en cuenta al hacer una recuperación de fallas.

0
agregado

Puede haber algunas razones por las cuales las tablas se corrompen, se trata en detalle en manual .

Para combatirlo, las siguientes cosas funcionan mejor:

  1. Asegúrese de que siempre se cierre MySQL correctamente
  2. Considere usar la opción --myisam-recover para verificar/reparar automáticamente sus tablas en caso de que el cierre no se haya realizado correctamente
  3. Asegúrese de estar en las versiones más recientes ya que los errores de corrupción conocidos normalmente se solucionan lo antes posible
  4. Verifique su hardware con una prueba para ver si está causando problemas. Herramientas como sysbench y memtest86 a menudo puede ayudar a verificar si las cosas funcionan como deberían.
  5. Asegúrese de que nada esté tocando el directorio de datos externamente, como las comprobaciones de virus, los programas de copia de seguridad, etc. ...
0
agregado
Seguí estos pasos antes, pero siempre obtengo tablas dañadas y pérdida de datos. Luego decidí tratar como mi respuesta a continuación y no recibo errores durante 2 años, incluso en tablas enormes con mucha información sobre el producto. Recomendé mi respuesta a todos. Sigue estos pasos y duerme bien por las noches, sin pesadillas :)
agregado el autor rasputin, fuente

Solía ​​obtener errores de MySQL como tú.

Solucioné mis problemas de esta manera

  1. Convierte a todas las tablas myisam en InnoDB (puedes buscar "myisam vs InnoDB" en stackoverflow.com y los motores de búsqueda para averiguar por qué)
  2. Para obtener el mejor rendimiento de MySQL, use un programa de terceros MONyog (MySQL Monitor and Advisor) y compruebe los consejos de rendimiento

Estos dos pasos me salvaron. Espero que estos también te ayuden mucho.

0
agregado