2008-09-18 10 views
11

De vez en cuando me sale un error al decir que una de mis tablas "está marcada como accidentada y debe repararse". 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.¿Qué causa que las tablas necesiten ser reparadas?

Respuesta

6

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

Para combatirlo, las siguientes cosas funcionan mejor:

  1. Asegúrese de que siempre MySQL apagado correctamente
  2. Considere el uso de la opción de revisar/reparar las tablas en el caso de que el apagado automáticamente --myisam-recover no se hizo correctamente
  3. Asegúrese de que está en las versiones más recientes ya que los errores de corrupción conocidos normalmente se arreglan ASAP
  4. Revise su hardware con una prueba para ver si está causando problemas. Herramientas como sysbench y memtest86 a menudo pueden ayudar a verificar si las cosas están funcionando como deberían.
  5. Asegúrese de que nada esté tocando el directorio de datos externa, tales como detectores de virus, programas de copia de seguridad, etc ...
+0

He seguido 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 :) – rasputin

0

Podría haber 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 another article mencionan varias cosas a tener en cuenta al hacer una recuperación de fallos.

3

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

3

que utiliza para obtener los errores de MySQL al igual que usted.

he resuelto mis problemas de esta manera

  1. Convertir a todas las tablas MyISAM a InnoDB (se puede buscar "myisam vs InnoDB" en stackoverflow.com y los motores de búsqueda para averiguar por qué)
  2. Para conseguir mejor rendimiento de MySQL, utilice un programa de terceros MONyog (MySQL monitor y Asesor) y comprobar consejos de rendimiento

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

Cuestiones relacionadas