executar um comando remoto com ssh parece interromper todas as outras atividades da rede

executar um comando remoto com ssh parece interromper todas as outras atividades da rede

Estou executando o seguinte comando para fazer backup de um banco de dados MySQL de uma máquina remota:

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

Cronometrei o comando e parece demorar cerca de 2,5 a 3 minutos. Parece funcionar sem problemas.

O problema, porém, é que todo o outro tráfego de rede no servidor remoto parece estar interrompido.

O servidor remoto possui conexões http do tipo "cometa" (conexões que permanecem abertas por um longo período) e essas conexões parecem parar. Existem também outras conexões TCP mantidas abertas que parecem se desconectar exatamente no ponto em que o comando ssh acima termina. (pelo menos as mensagens de log aparecem quando o comando ssh para, mas suspeito que nenhum dado esteja sendo transferido antes disso).

Responder1

O banco de dados está bloqueado

Embora seja descrito na pergunta como "todo o outro tráfego de rede no servidor remoto parece estar interrompido", é muito mais provável que o despejo do banco de dados bloqueie (todas) as tabelas innodb.

Neste cenário, qualquer processo de leitura/gravação em tabelas bloqueadas aguardará a conclusão do dump, antes de poder obter um bloqueio, ler/gravar no banco de dados e finalizar a solicitação. Se todo o tráfego http precisar ler/gravar no banco de dados, isso daria a percepção de que todo o tráfego http está bloqueado.

Prevenindo bloqueios

Mysqldump fornece o--transação únicaflag, que permite ao mysqldumpnãobloquear innodbtabelas.

informação relacionada