Estoy tratando de hacer un mysqldump en un servidor de Windows y recibo el siguiente mensaje de error :
mysqldump: Got error: 23: Out of resources when opening file '.\db\sometable.MYD' (Errcode: 24) when using LOCK TABLES
Aquí está el comando que estoy ejecutando:
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 los table_cache y max_connections las variables de 64 a 32 y 30 a 10 respectivamente, pero todavía consigo el error sólo que esta vez para una tabla diferente (y de ahora en adelante el mensaje de error siempre se mentionning la segunda tabla).
El mismo script se ejecuta en una docena de otros servidores de Windows que tienen la misma base de datos sin problemas.
Todas las bases de datos tienen 85 tablas.
Respuestas:
De acuerdo con aquí - "Código de error del sistema operativo 24: Demasiados archivos abiertos" que se alinea con el error más general 23 "Sin recursos".
Por lo tanto, parece que se está quedando sin identificadores de archivo. Este suele ser un problema / configuración del servidor, ya sea en MySQL o en el sistema operativo.
Quizás verifique / ajuste la
--open-files-limit
configuración en MySQL y vea si eso ayuda.Además, quizás intente ejecutar el volcado, mientras que nadie más está utilizando la base de datos, con la
--single-transaction
configuración en lugar de--Lock-File
, ya que varias personas sugieren que esto funcionará una tabla a la vez en lugar de abrirlas todas a la vez (por lo tanto, utilizando menos identificadores de archivo).Más allá de eso, probablemente tendrá que encontrar una causa raíz de por qué este servidor en particular se está quedando sin recursos. Lo que probablemente implicaría la resolución de problemas al deshabilitar tantos servicios / procesos como sea posible y ver si el volcado continúa. Luego, descubra a partir de ahí quién es el culpable que está consumiendo demasiados recursos y tal vez no los está liberando correctamente.
fuente
--lock-all-tables
también funciona y no tiene los problemas de inconsistencia de--single-transaction
cuando se trabaja en tablas que no son InnoDB.--single-transaction
fuerzas--lock-tables=off
. No use esto en tablas no transaccionales.¿Está en condiciones de probarlo en
--single-transaction
lugar de,--lock-tables
por ejemplo, las tablas son InnoDB y no está utilizando tablas de clúster y que ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE no ocurrirá durante el volcado? Mejor confirme que esto está bien con su organización de soporte MySQL si tiene una.Solo he intentado esto en Unix, pero básicamente si intento con un DB con 2000 tablas, falla con un error similar al tuyo, por ejemplo, he usado todos mis identificadores de archivos abiertos.
fuente
Puede obtener este error:
... junto con otros errores cuando actualiza a MySQL 5.5 y ejecuta sus copias de seguridad en Plesk o en cualquier otro sistema operativo que se esté ejecutando
mysqldump
.Arreglar:
my.cnf
Añadir:
Reiniciar MySQL
Si estás recibiendo:
Este es el resultado de una actualización a 5.5. Ejecutar:
Probado y trabajado en CentOS 6.7 y Plesk 12.
fuente
Tuve un problema similar al de Philipe. Cuando comienzo a volcar vi un error como este:
Usé un comando simple:
Entonces, agrego otro comando a mi mysqldump:
Y el volcado está listo. Entonces, mi consulta de mysqldump se ve así:
fuente