The world's most popular open source database
Esta sección explica como MySQL se comporta frente a errores de disco lleno (como “no space left on device”), y, a partir de MySQL 4.0.22, a errores de límite de cuota (como “write failed” o “user block limit reached”).
Esta sección es relevante para escrituras a tablas MyISAM. A paritr de MySQL 4.1.9, también se aplica
a las escrituras a archivos de registro binario y también a sus índices, excepto por las referencias a “row” y
“record” que deberían entenderse como “event.”
Cuando se llega a la situación de disco lleno, MySQL hace lo siguiente:
Comprueba una vez por minuto si hay suficiente espacio para escribir la fila actual. Si hay espacio, continua como si nada hubiese pasado.
Cada 10 minutos, escribe una entrada en el archivo de registro, avisando sobre la situación de disco lleno.
Para aliviar el problema, puede hacer lo siguiente:
Para continuar, lo único que tiene que hacer es liberar suficiente espacio en disco para insertar todos los registros.
Para abortar el hilo, debe utilizar el comando mysqladmin kill. El hilo se aborta la próxima vez que comprueba el disco (en un minuto).
Otros hilos podrían estar esperando a la tabla que causó la situación de disco lleno. Si tiene varios hilos bloqueados matar al que está esperando por la situación de disco lleno permite que los demás hilos puedan continuar.
Hay excepciones al comportamiento descrito previamente, como cuando utiliza REPAIR TABLE o
OPTIMIZE TABLE, o cuando los índices son creados en batch tras la sentencia LOAD DATA INFILE
o la sentencia ALTER TABLE. Todas estas sentencias podrían crear grandes archivos temporales que, si se
dejan a su suerte, podrían causar enormes problemas para el resto del sistema. Si el disco se llena mientras MySQL está haciendo
alguna de estas operaciones, elimina el archivo temporal grande y marca la tabla como corrupta. La excepción es que con
ALTER TABLE, la tabla antigua se deja tal como estaba, sin cambios.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

