MySQL perdeu o erro de conexão no mysqldump

7

Eu tenho um banco de dados MySQL de 1 TB que gostaria de descarregar e recarregar. A maioria dos dados está em uma tabela. Um monte de dados foi deletado, então eu tenho certeza que se eu derramar com o mysql, reconstruir o banco de dados e recarregá-lo, o tamanho total será menor.

Estou jogando os dados com este comando:

mysqldump  -uroot -pXXX  mydb | gzip -c > data.sql.gz

Eu recebo este erro

 mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table 'MY_TABLE' at row: 596089342

Eu tentei muitas variações, incluindo aumentar o tamanho do pacote, fazer uma única tradução e passar por TCP / IP em vez de soquete local.

mysqldump  -uroot -pXXX -h 127.0.0.1 --max-allowed-packet=1024M  --single-transaction mydb | gzip -c > data.sql.gz

Finalmente, eu corri o comando indo para / dev / null para ter certeza que não era o gzip. Todas as permutações produzem o mesmo erro.

mysqldump  -uroot -pXXX -h 127.0.0.1 mydb > /dev/null

Aqui estão algumas das configurações em my.cnf

max_allowed_packet = 1G
interactive_timeout = 600
wait_timeout = 600
net_read_timeout=600
net_write_timeout=600
connect_timeout=600

Outra coisa estranha é que o lixo sempre pára no mesmo lugar. Aproximadamente 6 GB de dados compactados e aproximadamente o mesmo registro. Quando eu faço ls -l o tamanho do arquivo é sempre idêntico.

Estou perplexo. Alguma sugestão para os próximos passos?

Para o registro, este é o Mysql 5.1.58 rodando no Ubuntu 11.10

    
por Will Glass 18.01.2013 / 01:57

2 respostas

4

No final, parece que eu tive uma corrupção de dados. Eu tinha copiado dois volumes (EC2 ebs) que estavam vinculados ao LVM. Posso não ter congelado o volume corretamente ao fazer a cópia e suspeito que eles não foram sincronizados adequadamente. Comecei com meus volumes originais, executei o procedimento novamente, congelando cuidadosamente o volume do xfs antes de fazer a captura instantânea do EC2, depois carreguei as cópias em meu novo servidor e funcionou bem.

    
por 01.04.2013 / 10:28
0

Você tentou usar o arquivo de soquete para ignorar a camada TCP / IP, por exemplo,

# Find the socket file e.g.
$ grep  "^socket"  /etc/my.cnf
socket      = /var/lib/mysql/mysql.sock
#
# Plug the filename into the mysqldump
$ mysqldump  --socket=/var/lib/mysql/mysql.sock -uroot mydb | gzip -c > data.sql.gz
    
por 18.01.2013 / 12:27

Tags