xtrabackup已家喻戶曉,如果面臨xtrabackup進行遠程備份,時間大多花在網絡傳輸中,受orzhou 大師 tar+lz4/pigz+ssh更快的數據傳輸 的啓發,可以採用邊壓縮邊傳輸的方式:
線上xtrabackup採用stream備份方式,傳送到遠端機器;
原先的流程是:磁盤讀取-->打包-->傳輸-->落盤
採用“邊壓縮邊傳輸”的方式(最重要還是要選好工具),
流程分爲: 磁盤讀取,tar打包,壓縮 ,傳輸,[解壓縮 ,拆包 可選],落盤
最理想的情況下是,幾個關鍵步驟都能達到速度的頂峯,提升速度最慢的那個(解壓縮過程),減少“木桶效應”的影響;更多壓縮工具測試請參考:Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO
xtrabackup遠程備份可改爲:
/usr/bin/innobackupex --slave-info --safe-slave-backup --user=mysqlbackup --password=xxx --defaults-file=xxx --port=xxx --socket=xxx --stream=tar /tmp/ 2>>/tmp/mysqlbackup.log |lz4 -B4| ssh -c aes192-cbc -o "MACs [email protected]" mysqlbackup@xxx "lz4 -d | tar -xiC /data/xxxxxxx"
unpigz -cd test.tgz | pv | tar -xC /usr/local/src/ //簡單記錄下 pigz 的解壓 -c, --stdout Write all processed output to stdout (won't delete) -d, --decompress Decompress the compressed input