Следующее работает, как ожидалось.
Отправляющий сервер:
mysqldump db_name tbl_name -d | nc -l 1234
Принимающий сервер:
nc 10.10.10.114 1234 | mysql -uroot -proot@123 test
Когда я выгружаю данные на удаленный сервер, на передачу данных уходит много времени. Можно ли добавить смолу jcf - и деготь jxf - в этом процессе.
Конечно:
mysqldump db_name tbl_name -d | bzip2 -c | nc -l 1234
и
nc 101010.114 1234 | bzip2 -cd | mysql -uroot -proot@123 test
(Заменить bzip2
с участием gzip
или какую-нибудь другую программу сжатия, если хотите; все они работают примерно одинаково в Linux)
Нет причин использовать tar; вы просто выгружаете данные из MySQL в виде одного фрагмента текста. Вы также используете nc
тем, что обычно считается «обратным» путем; обычно потребитель данных (mysql
в данном случае) прослушивает (но на самом деле нет никакой разницы в работе, это просто "кажется" странным).
Однако имейте в виду, что этот метод на самом деле может не ускорить работу - по моему опыту, узким местом в дампах / загрузках MySQL является MySQL, а не сеть (если вы не запускаете это по ссылке с серьезно ограниченной пропускной способностью).
Пропуск через tar должен работать нормально.
Отправка:
... | tar -cjf - | ...
Получение
... | tar -xjf - | ...
Возможно, вы захотите использовать вместо этого «z», поскольку он использует сжатие gzip вместо более дорогого bzip2, но это зависит от того, насколько быстро он работает для вас.