Probeer de --quick
. toe te voegen optie naar uw mysqldump
opdracht; het werkt beter met grote tafels. Het streamt de rijen van de resultatenset naar de uitvoer in plaats van de hele tabel te slurpen en vervolgens weg te schrijven.
mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
gzip > dump_test.sql.gz
Je kunt ook proberen de --compress
. toe te voegen optie toe aan uw mysqldump-opdracht. Dat maakt het gebruik van het meer netwerkvriendelijke gecomprimeerde verbindingsprotocol voor uw MySQL-server. Merk op dat je nog steeds de gzip
. nodig hebt pijp; Het gecomprimeerde protocol van MySQL zorgt er niet voor dat de dump uit mysqldump
komt gecomprimeerd.
Het is ook mogelijk dat de server zijn verbinding met de mysqldump
aan het timen is cliënt. U kunt proberen de time-outduur opnieuw in te stellen. Maak op een andere manier verbinding met uw server en voer deze vragen uit, voer vervolgens uw mysqldump
. uit baan.
Deze stellen de time-outs in op één kalenderdag.
SET GLOBAL wait_timeout=86400;
SET GLOBAL interactive_timeout=86400;
Ten slotte, als uw server ver weg is van uw machine (via routers en firewalls), kan er iets zijn dat mysqldump
verstoort 's verbinding. Sommige inferieure routers en firewalls hebben tijdslimieten voor NAT-sessies (netwerkadresvertaling). Ze zouden die sessies in leven moeten houden terwijl ze in gebruik zijn, maar sommige doen dat niet. Of misschien bereikt u een tijd- of groottelimiet die door uw bedrijf is geconfigureerd voor externe verbindingen.
Probeer in te loggen op een machine dichter bij de server en draai mysqldump
Gebruik dan een andere manier (sftp?) om je gz-bestand naar je eigen machine te kopiëren.
Of misschien moet u de dump van dit bestand segmenteren. Je kunt zoiets doen (niet debuggen).
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....
Herhaal dat dan met deze regels.
--where="id>=1000000 AND id < 2000000" | \
--where="id>=2000000 AND id < 3000000" | \
...
totdat je alle rijen hebt. Pijn in de nek, maar het zal werken.