xtrabackup备份选项

并行备份:
xtrabackup支持并行备份,就是备份的时候同时开启多个线程,同时进行备份操作,这样能加快备份速度但是会加大IO负担,默认情况下开启一个进程进行备份,使用‘--parallel’选项指定并行备份的线程数量:
innobackupex -p123123 --parallel=8 /backup
 
节流备份:
xtrabackup支持节流备份,也就是节省IO操作的意思,当数据库服务器上没有多余的空闲IO时,可以使用该种方式,使用‘--throttle’限制每秒操作的IO次数:
innobackupex -p123123 --throttle=200 /backup
 
压缩备份:
innobackupex支持压缩备份,使用该功能之后在备份时直接生成经过压缩的备份。
两种方式:
1:使用‘--compress’选项进行压缩
2:使用流的方式进行备份,将备份的tar格式的流重定向到其他压缩软件进行压缩
 
压缩与并行共用:
在对数据进行压缩的同时,还能够通过‘--compress-threads’指定压缩线程的数量:
innobackupex -p123123 --compress --compress-threads=8 /backup
 
那么能否与‘--parallel’选项合用呢?可以的:
innobackupex -p123123 --parallel=8 --compress --compress-threads=8 /backup
这表示将会有8个IO线程备份数据,并将数据传输给8个线程进行压缩。
 
没错经过压缩之后,在还原之前需要对数据进行解压,进入目录能够发现,除了xtrabackup_checkpoints文件外,其他的都被压缩成了以‘.qp’结尾的文件。
之前说过使用--compress选项压缩备份文件时,使用的压缩算法是‘quicklz’,‘quicklz’也是一个库,他的官网号称自己是全球最快的压缩库(http://www.quicklz.com/
其实就是我们解压腾讯的压缩备份.qp文件使用到的qpress!
 
在备份时使用了--compress选项,解压需要用到qpress,使用qpress -d解压:
qpress -d test.qp ./
这表示将test.qp文件解压到当前目录中!
 
流备份:
xtrabackup支持流备份,将备份数据以数据流的方式输出
使用‘--stream’选线可以实现流备份,xtrabackup支持两种流备份:
1:tar格式的流:
使用如下指令,将tar格式的流当做标准输出输出到屏幕上,虽然指定了/backup目录,但是对应目录下找不到对应文件:
innobackupex -p123123 --stream=tar /backup
因此,我们需要对上述tar格式的流进行重定向:
innobackupex -p123123 --stream=tar /backup > /backup/back.tar
 
注意:这里重定向的目录‘/backup/back.tar’跟前面的‘/backup’没有任何关系,重定向可以是任何目录,但是,前面的‘/backup’不能省略,省略就会报错:Missing argument
 
注意:在官方文档中说了,在解压tar格式的流备份时,需要使用tar指令的‘-i’选项:
tar -ixvf /backup/back.tar
 
还能将备份输出到远程主机,不占用本机的磁盘空间:
innobackupex -p123123 --stream=tar /tmp | ssh root@192.168.1.120 \ "cat - > /backup/bak.tar"
这表示将备份直接传输到远程主机‘192.168.1.120’上。
前提:本机需要被远程主机新信任,也就是无秘钥登录!
 
也可以在流备份到远程主机时进行压缩操作:
innobackupex -p123123 --stream=tar /tmp | ssh root@192.168.1.120 \ "gzip > /backup/dateFullBak.tar.gz";
 
2:xbstream格式流备份:
innobackupex -p123123 --stream=xbstream ./ > /backup/fullbak.xbstream
此处我们将xbstream格式的数据流重定向到了‘/backup/fullbak.xbstream’文件中。
 
xbstream流备份也能在备份时进行压缩,也是通过‘--compress’进行压缩:
innobackupex -p123123 --stream=xbstream --compress ./ > /backup/fullbak.xbstream
 
如何释放xbstream流备份文件?
通过xbstream指令,-x选项表示释放xbstream流备份到当前目录,如果要释放到制定目录,需要使用—C选项,示例如下:
xbstream -x -C /backup/zsythink/ < fullbak.xbstream
 
如果生成的xbstream文件是通过压缩过来的, 那么释放后的xbstream文件释放后的文件为'.qp’文件,还需要用qpress解压,具体方法在前面描述过了!
 
将xbstream流直接备份到远程主机:
innobackupex -p123123 --stream=xbstream --compress /tmp | ssh root@192.168.1.120 "xbstream -x -C /backup/datafull"
 
OK,xtrabackup就先总结到这里!
 
看到这里,是不是觉得很熟悉?xb文件是不是在哪里见过?
没错,腾讯的DB冷备就是通过--compress压缩过的xbstream流文件!
先通过xbstream解压,得到.qp文件,再通过qpress解压成.sql文件!
posted @ 2020-08-19 00:05  一个运维  阅读(959)  评论(0编辑  收藏  举报