ejecutar un comando remoto con ssh parece bloquear todas las demás actividades de la red

ejecutar un comando remoto con ssh parece bloquear todas las demás actividades de la red

Estoy ejecutando el siguiente comando para hacer una copia de seguridad de una base de datos MySQL desde una máquina remota:

ssh [email protected] 'mysqldump mainserver' | gzip -c > mainserver.sql.gz

He cronometrado el comando y parece que tarda entre 2,5 y 3 minutos. Parece funcionar sin problemas.

Sin embargo, el problema es que todo el resto del tráfico de red en el servidor remoto parece estar interrumpido.

El servidor remoto tiene conexiones http tipo "cometa" (conexiones que permanecen abiertas durante un período prolongado) y esas conexiones parecen detenerse. También hay otras conexiones TCP que se mantienen abiertas y que parecen desconectarse exactamente en el punto donde finaliza el comando ssh anterior. (al menos los mensajes de registro aparecen cuando se detiene el comando ssh, pero sospecho que no se transfieren datos antes de eso).

Respuesta1

La base de datos está bloqueada

Si bien se describe en la pregunta como "todo el resto del tráfico de red en el servidor remoto parece estar interrumpido", es mucho más probable que el volcado de la base de datos bloquee (todas) las tablas innodb.

En este escenario, cualquier proceso de lectura/escritura en tablas bloqueadas esperará a que finalice el volcado, antes de poder obtener un bloqueo, leer/escribir en la base de datos y finalizar la solicitud. Si todo el tráfico http necesita leer/escribir en la base de datos, esto daría la percepción de que todo el tráfico http está bloqueado.

Prevención de bloqueos

Mysqldump proporciona la--transacción únicabandera, que permite a mysqldumpnobloquear innodbmesas.

información relacionada