xtrabackup已家喻户晓,如果面临xtrabackup进行远程备份,时间大多花在网络传输中,受orzhou 大师 tar+lz4/pigz+ssh更快的数据传输 的启发,可以采用边压缩边传输的方式:

   线上xtrabackup采用stream备份方式,传送到远端机器;

   原先的流程是:磁盘读取-->打包-->传输-->落盘

   采用“边压缩边传输”的方式(最重要还是要选好工具),

wKiom1LPqlOjJugGAABQ8sSt4F4117.jpg

   流程分为: 磁盘读取,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 umac-64@openssh.com"  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