Prova ad aggiungere il --quick
opzione al tuo mysqldump
comando; funziona meglio con tavoli grandi. Trasmette le righe dal set di risultati all'output invece di eseguire lo slurping dell'intera tabella, quindi scriverla.
mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
gzip > dump_test.sql.gz
Puoi anche provare ad aggiungere il --compress
opzione al tuo comando mysqldump. Ciò fa sì che utilizzi il protocollo di connessione compresso più adatto alla rete per il tuo server MySQL. Nota che hai ancora bisogno di gzip
tubo; Il protocollo compresso di MySQL non fa uscire il dump da mysqldump
compresso.
È anche possibile che il server stia interrompendo la sua connessione a mysqldump
cliente. Puoi provare a reimpostare le durate di timeout. Collegati al tuo server con altri mezzi ed emetti queste query, quindi esegui il tuo mysqldump
lavoro.
Questi impostano i timeout su un giorno di calendario.
SET GLOBAL wait_timeout=86400;
SET GLOBAL interactive_timeout=86400;
Infine, se il tuo server è lontano dalla tua macchina (attraverso router e firewall) qualcosa potrebbe interrompere mysqldump
la connessione. Alcuni router e firewall di qualità inferiore hanno limiti di tempo per le sessioni NAT (traduzione dell'indirizzo di rete). Dovrebbero mantenere in vita quelle sessioni mentre sono in uso, ma alcuni no. O forse stai raggiungendo un limite di tempo o dimensione configurato dalla tua azienda per le connessioni esterne.
Prova ad accedere a una macchina più vicina al server e ad eseguire mysqldump
su di esso. Quindi usa qualche altro mezzo (sftp?) Per copiare il tuo file gz sulla tua macchina.
Oppure potresti dover segmentare il dump di questo file. Puoi fare qualcosa del genere (non sottoposto a debug).
mysqldump -uroot -h my.host -p'mypassword' \
db_name table_name --skip-create-options --skip-add-drop-table \
--where="id>=0 AND id < 1000000" | \
gzip....
Quindi ripeti con queste righe.
--where="id>=1000000 AND id < 2000000" | \
--where="id>=2000000 AND id < 3000000" | \
...
finché non ottieni tutte le righe. Dolore al collo, ma funzionerà.