Ya colgamos la base de datos dos veces e intentamos encontrar una causa.
show processlist
Waiting for global read lock | INSERT INTO {myisam_table} ...
Aquí el espacio en disco estaba lleno, así que pensamos que el problema había terminado después de darle un poco más, pero al día siguiente al mediodía volvió a colgar:
show processlist
Waiting for table level lock | UPDATE {myisam_table} ...
¿Qué podría estar causándolo?
Motor predeterminado de Mysql: InnoDB.
La base de datos tiene una mezcla de tablas con los motores MyISAM e InnoDB.
Registro publicado aquí:
http://arturito.net/2013/08/28/mysql-waiting-for-table-level-lock-errors/
mysqldump
. ¿Estaba ejecutando una copia de seguridad en ese momento?SHOW FULL PROCESSLIST
lugar deSHOW PROCESSLIST
ver la consulta completa para cada hilo ... pero tal como está ahora, si hayMyISAM
tablas involucradas, entonces parece que la consulta de larga duraciónSELECT
en 42686 está bloqueando laUPDATE
consulta en 43506 , que a su vez bloquea todas lasSELECT
consultas que le siguen.Respuestas:
OBSERVACIONES INICIALES
JOIN
,GROUP BY
oORDER BY
TEORIA DE TRABAJO
Si te quedaste sin espacio en disco con la lista de procesos que me diste, entonces podemos echarle la culpa al motor de almacenamiento MyISAM. ¿Por qué?
En su caso particular, no es una de sus tablas. Si una
JOIN
,GROUP BY
oORDER BY
se estaba ejecutando y una tabla temporal se estaba escribiendo en el disco (en el disco tablas temporales utilizan el motor de almacenamiento MyISAM) de MySQL simplemente se congela cuando está fuera del espacio. Cómo sé eso ?De acuerdo con la Guía de estudio de certificación MySQL 5.0
Página 408,409 La sección 29.2 Punto 11 dice:
He discutido esta situación antes
Apr 05, 2013
: El servidor MySQL "Site Offline" no puede iniciarse y detenerseDec 17, 2012
: ¿Cómo resolver el error 1114 "La tabla está llena" de MySQL con Amazon RDS?Apr 25, 2012
: Archivos de registro muy grandesMar 15, 2012
: ¿Por qué fallan las tablas MySQL? ¿Cómo lo evito?Algo me dice que tienes una de estas dos situaciones
/tmp
la partición raíz, se está quedando sin espacioSUGERENCIAS
Sugerencia n. ° 1: asigne tmpdir a otro disco
Sugerencia n. ° 2: crear un disco RAM
Ejecute este código para instalar un disco RAM que estará disponible en el reinicio de Linux.
Luego, asigne tmpdir a
/var/tmpfs
DARLE UNA OPORTUNIDAD !!!
fuente