大文件跨服务器传送

2015年9月15日 19:02:47

<高性能mysql>里的内容

场景是将数据从一个服务器传递到另一个服务器中用于mysql数据初始化或恢复

本质的原理是压缩传输

1. 使用管道命令, 压缩的时候直接传输, 不再压缩到本地, 再传输到另一台server压缩

server1$ gzip -c /server1/data/file | ssh root@server2 "gunzip -c - > /server2/data/file"

2. 上一步用了ssh加密, 也可以不用加密的nc命令传输, 需要监听一个端口

server2$ nc -l -p 12345 | gunzip -c - > /server2/data/file //server2监听端口,等待数据传递进行解压缩

server1$ gzip -c - /server1/data/file | nc -q 1 server2 12345

注意:

1. 压缩命令的选择: 更快的压缩/解压但压缩率不高, 慢一些的压缩速度, 但是压缩率比较高 (gzip -l 压缩更快, lzo压缩更快, bzip2压缩率更高)

2. 压缩的时候用tar打包, 他解压的时候会自动命名

3. 用rsync支持断点续传

4. 通过监控来选择更好的方法 vmstat -n 5, 查看是磁盘IO还是cpu速度是瓶颈(千兆网卡的话,但cpu/磁盘不咋滴, 瓶颈就可能在读写文件上, 不压缩反而更快)

 

posted @ 2015-09-15 19:23  myD  阅读(374)  评论(0编辑  收藏  举报