xtrabackup已家喻户晓,如果面临xtrabackup进行远程备份,时间大多花在网络传输中,受orzhou 大师 tar+lz4/pigz+ssh更快的数据传输 的启发,可以采用边压缩边传输的方式:
线上xtrabackup采用stream备份方式,传送到远端机器;
原先的流程是:磁盘读取-->打包-->传输-->落盘
采用“边压缩边传输”的方式(最重要还是要选好工具),
流程分为: 磁盘读取,tar打包,压缩 ,传输,[解压缩 ,拆包 可选],落盘
最理想的情况下是,几个关键步骤都能达到速度的顶峰,提升速度最慢的那个(解压缩过程),减少“木桶效应”的影响;更多压缩工具测试请参考:Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO
xtrabackup远程备份可改为:
1
|
/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"
|
1
2
3
4
|
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
本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1350449,如需转载请自行联系原作者
|