Estoy intentando hacer un mysqldump en unventanasservidor y me sale lo siguientemensaje de error:
mysqldump: Got error: 23: Out of resources when opening file '.\db\sometable.MYD' (Errcode: 24) when using LOCK TABLES
Aquí esta ladominioEstoy corriendo :
mysqldump -u user -p"pass" --lock-tables --default-character-set=latin1 -e --quick databasename > "query.sql"
Reiniciar el servicio mysql no ayudó.
Siempre recibo el mensaje para la misma mesa.
He intentado reducir elcaché_tablayconexiones_maxvariables de 64 a 32 y de 30 a 10 respectivamente, pero sigo recibiendo el error solo esta vez para una tabla diferente (y de ahora en adelante el mensaje de error siempre menciona la segunda tabla).
El mismo script se ejecuta en una docena de otrosventanasservidores que tengan la misma base de datos sin problemas.
Todas las bases de datos tienen 85 tablas.
Respuesta1
De acuerdo aaquí- "Código de error 24 del sistema operativo: Demasiados archivos abiertos", que se alinea con el error más general 23 "Sin recursos".
Parece que se está quedando sin identificadores de archivos. Esto suele ser una configuración/problema del extremo del servidor, ya sea en MySQL o en el propio sistema operativo.
Tal vez revise/ajuste el--open-files-limit
configuraciónen MySQL y ver si eso ayuda.
Además, tal vez intente ejecutar el volcado, mientras nadie más esté usando la base de datos, con el--single-transaction
configuraciónen lugar de --Lock-File
, como sugieren varias personas, esto funcionará una tabla a la vez en lugar de abrirlas todas a la vez (por lo tanto, usará menos identificadores de archivos).
Más allá de eso, probablemente tendrá que encontrar la causa raíz de por qué este servidor en particular se está quedando sin recursos. Lo que probablemente implicaría solucionar problemas deshabilitando tantos servicios/procesos como sea posible y ver si el volcado se realiza. Luego, averigüe a partir de ahí quién es el culpable de consumir demasiados recursos y tal vez no liberarlos correctamente.
Respuesta2
¿Está en condiciones de probarlo --single-transaction
en lugar de --lock-tables
, por ejemplo, que las tablas sean InnoDB y no esté utilizando tablas de clúster y que ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE no suceda durante el volcado? Lo mejor es confirmar que esto está bien con su organización de soporte de MySQL, si tiene una.
Solo probé esto en Unix, pero básicamente si lo intento con una base de datos con 2000 tablas, falla con un error similar al suyo, por ejemplo, he usado todos mis identificadores de archivos abiertos.
Respuesta3
Es posible que reciba este error:
MySQL: Código de error: 24 cuando se usa LOCK TABLES
...junto con otros errores cuando actualiza a MySQL 5.5 y está ejecutando sus copias de seguridad en Plesk o cualquier otro sistema operativo que esté ejecutando mysqldump
.
Arreglar:
- Editar
my.cnf
Agregar:
open_files_limit=2048
Reiniciar MySQL
Si estás recibiendo:
No se puede cargar desde mysql.proc. La tabla probablemente esté corrupta (1548)
Esto es el resultado de una actualización a 5.5. Ejecutar:
mysql_upgrade --force
Probado y trabajado en CentOS 6.7 y Plesk 12.
Respuesta4
Tuve un problema similar al de Philipe. Cuando comencé el volcado vi un error como este:
mysqldump: Got error: 23: Out of resources when opening file './c1baznarz/timecard.MYD' (Errcode: 24) when using LOCK TABLES
Usé un comando simple:
mysqldump -uroot -p c1baznarz > c1baznarz.sql
Entonces, agrego otro comando a mi mysqldump:
--single-transaction
y el volcado está listo. Entonces, mi consulta de mysqldump se ve así:
mysqldump -uroot -p --lock-tables --single-transaction c1baznarz > c1baznarz.sql