Опитайте да добавите --quick
опция за вашия mysqldump
команда; работи по-добре с големи маси. Той предава поточно редовете от набора от резултати към изхода, вместо да изхрипва цялата таблица, след което да я изписва.
mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
gzip > dump_test.sql.gz
Можете също да опитате да добавите --compress
опция за вашата команда mysqldump. Това го кара да използва по-удобния за мрежата компресиран протокол за връзка към вашия MySQL сървър. Забележете, че все още имате нужда от gzip
тръба; Компресираният протокол на MySQL не води до извеждането на дъмп от mysqldump
компресиран.
Възможно е също така сървърът да изтече времето на връзката си с mysqldump
клиент. Можете да опитате да нулирате продължителността на изчакването. Свържете се с вашия сървър чрез други средства и издайте тези заявки, след което стартирайте вашия mysqldump
работа.
Те задават изчакванията на един календарен ден.
SET GLOBAL wait_timeout=86400;
SET GLOBAL interactive_timeout=86400;
И накрая, ако вашият сървър е далеч от вашата машина (чрез рутери и защитни стени), нещо може да нарушава mysqldump
връзка на. Някои по-ниски рутери и защитни стени имат времеви ограничения за NAT (превод на мрежов адрес) сесии. Те трябва да поддържат тези сесии живи, докато се използват, но някои не го правят. Или може би достигате ограничение за време или размер, конфигурирано от вашата компания за външни връзки.
Опитайте да влезете в машина по-близо до сървъра и да стартирате mysqldump
върху него. След това използвайте други средства (sftp?), за да копирате вашия gz файл на вашата собствена машина.
Или може да се наложи да сегментирате дъмпа на този файл. Можете да направите нещо подобно (не е отстранено).
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....
След това повторете това с тези редове.
--where="id>=1000000 AND id < 2000000" | \
--where="id>=2000000 AND id < 3000000" | \
...
докато получите всички редове. Болка във врата, но ще свърши работа.