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
|