Heim > Datenbank > MySQL-Tutorial > 大文件跨网传输技巧_MySQL

大文件跨网传输技巧_MySQL

WBOY
Freigeben: 2016-06-01 13:30:28
Original
1174 Leute haben es durchsucht

bitsCN.com

大文件跨网传输技巧

 

     运维DBA跨网传输大文件就如同上茅厕下厨房一般无二

     好的方法并非显而易见,且方法的优劣差异可能非常显著

     

     常言道:蔬菜最后一公里价格翻一翻,即便不听常言

     我们用迅雷下载常常驻足在99.9%,亦可窥见文件校验的昂贵

     整个传输需要综合考量的因素颇多,这里我仅拿是否压缩来写

     压缩无须做文件校验,且节省网络带宽,提高传输速度

     相关资源如:CPU、内存、IO,最好用vmstat -n 5看IO或者CPU是否为瓶颈

     切莫教条主义导致和数据库服务器争抢资源拖垮DB Server 

     因为压缩必然要增加CPU开销!

     

     以下介绍4种方法

     

     ㈠ rsync 

        

        利用rsync的二进制差异算法,只在网间同步变化的数据,这是rsync优势所在。

        在知道文件中大部分的内容都不需要传输的场景下,可以优先考虑使用rsync。

[plain] [mysql@even ~]$ rsync -av /backup/ -e ssh root@192.168.1.110:/bak  root@192.168.1.110's password:   sending incremental file list  ./  cdio_bak.sql    sent 1061815 bytes  received 34 bytes  163361.38 bytes/sec  total size is 1061575  speedup is 1.00    [mysql@even ~]$ mv cdio_bak.sql.bz2 /backup  [mysql@even ~]$ rsync -av /backup/ -e ssh root@192.168.1.110:/bak  root@192.168.1.110's password:   sending incremental file list  ./  cdio_bak.sql.bz2    sent 308 bytes  received 34 bytes  76.00 bytes/sec  total size is 1061757  speedup is 3104.55  
Nach dem Login kopieren

显然,这次只同步了变化的308字节大小。

㈡ scp

这大概会是最简单的方法,但速度较慢,因为每步都要读写磁盘

[plain] [mysql@even ~]$ gzip -c cdio_bak.sql > cdio_bak.sql.gz  [mysql@even ~]$ scp cdio_bak.sql.gz root@192.168.1.110:/bak    [root@odd bak]# gunzip cdio_bak.sql.gz  
Nach dem Login kopieren

㈢ 管道

一步到位,极大降低IO开销。平时我也是用这种。

[plain] [mysql@even ~]$ gzip -c cdio_bak.sql | ssh root@192.168.1.110 "gunzip -c - > /bak/cdio.sql"  
Nach dem Login kopieren

 

 

     ㈣ nc

        

        跨网ssh并非最佳,netcat能使数据在网间"裸奔",避免加密带来的系统开销。

[plain] 

ODD机器[受]:  

犹如饿坏了的宠物小狗,张着嘴等着小主人喂食  

[root@odd ~]# nc -l -p 55555 | tar zxvf -  

  

EVEN机器[攻]:  

比如贪玩的小主人,往小狗嘴里倒东东  

[root@even ~]# tar zcvf - mm | nc 192.168.1.110 55555  

 

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage