程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 大文件跨網傳輸技巧

大文件跨網傳輸技巧

編輯:MySQL綜合教程

大文件跨網傳輸技巧        運維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 [email protected]:/bak  
[email protected]'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 [email protected]:/bak  
[email protected]'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  

 

        顯然,這次只同步了變化的308字節大小。        ㈡ scp                  這大概會是最簡單的方法,但速度較慢,因為每步都要讀寫磁盤  
[plain] 
[mysql@even ~]$ gzip -c cdio_bak.sql > cdio_bak.sql.gz  
[mysql@even ~]$ scp cdio_bak.sql.gz [email protected]:/bak  
  
[root@odd bak]# gunzip cdio_bak.sql.gz  

 

           ㈢ 管道                  一步到位,極大降低IO開銷。平時我也是用這種。
[plain] 
[mysql@even ~]$ gzip -c cdio_bak.sql | ssh [email protected] "gunzip -c - > /bak/cdio.sql"  

 

       ㈣ 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    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved