资讯专栏INFORMATION COLUMN

XtraBackup流备份

IT那活儿 / 736人阅读
XtraBackup流备份
 简 介:

Percona XtraBackup(简称PXB)是最常用的MySQL物理热备工具之一,并且是完全开源的。软件安装好后,bin目录下的文件如下所示:(版本为2.4.9)

在2.3版本之后,xtrabackup可同时用来备份innodb表和非innodb表,且会与mysqld server进行交互,如加读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等;

Innobackupex是作为xtrabackup的软连接;

xbcrypt是用来加密或解密;

xbstream是Percona实现的用于将备份输出格式转换为流文件的格式。


 安 装:

将xtrabackup.tar.gz安装包和qpress文件上传到/opt目录下并解压,然后设置软连接即可使用。

ln -s /opt/xtrabackup/bin/xtrabackup /usr/bin/innobackupex
ln -s /opt/xtrabackup/bin/xtrabackup /usr/bin/xtrabackup
ln -s /opt/xtrabackup/bin/xbstream /usr/bin/xbstream
cp /opt/qpress /usr/bin/ (qpress属主为root用户,权限为755)


常用参数:

--defaults-file     # 指定配置文件,这个参数要放在第一位
--socket            # 指定socket文件
-u                  # 指定用户名
-p                  # 指定密码
--compress          # 启用压缩
--compress-threads =3        # 指定同时压缩的线程数量
--compress-chunk-size=1024K  # 指定压缩的缓冲区大小
--parallel=8        # 指定启动并发备份线程的数量(一个数 据文件只会有一个进程完成备份)
--slave-info        # 打印出master的名字和位点信息,并记录到 xtrabackup_slave_info文件中
--stream=tar,xbstream   # 指定流备份格式



流备份:

Xtrabackup的stream参数可以实现将备份以指定的tar或stream格式输出到STDOUT(标准输出),基于此,可以使用管道符和其他程序来过滤备份的输出,为备份的存储提供更大的灵活性。

1. Tar格式的流备份

innobackupex  --defaults-file=/data/mysql/db_master01/conf/master01.cnf --socket=/data/mysql/db_master01/mysql.sock -uroot -p123456 --stream=tar /tmp > /data/DBbackup/master01/master_tar.tar

注:“/tmp”是流备份产生的临时文件存储的路径。

2. Tar格式的压缩流备份

当使用tar格式的流备份时,直接使用“--compress”参数来进行压缩会提示不兼容报错,报错截图如下所示:

此时可以使用管道符和Linux环境下的压缩命令来完成压缩,命令如下:

innobackupex  --defaults-file=/data/mysql/db_master01/conf/master01.cnf --socket=/data/mysql/db_master01/mysql.sock -uroot -p123456 --stream=tar /tmp | gzip - > /data/DBbackup/master01/master_gzip.tar.gz

可以比较一下压缩后备份文件的大小:

3. xbstream格式流备份

innobackupex  --defaults-file=/data/mysql/db_master01/conf/master01.cnf --socket=/data/mysql/db_master01/mysql.sock -uroot -p123456 --compress --compress-threads=3 --parallel=8 --stream=xbstream /tmp > /data/DBbackup/master01/master_xbstream.xbstream

查看备份文件大小:

从归档文件中提取备份:

xbstream -x < master_xbstream.xbstream -C /data/DBbackup/master01

4. 基于流备份的远程备份

可以使用管道符搭配SSH命令,将备份数据流传输到远程主机,命令如下:

innobackupex  --defaults-file=/data/mysql/db_master01/conf/master01.cnf --socket=/data/mysql/db_master01/mysql.sock -uroot -p123456 --compress --compress-threads=3 --parallel=8 --stream=xbstream /tmp | ssh mysql@10.10.1.128 "cat - > /data/master01/master_remote.xbstream"

登录远程主机,查看备份文件:


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129849.html

相关文章

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<