## 实验环境 此次实验的环境如下 - MySQL 5.7.26 - Redhat 6.10 - 操作系统账号:mysql - 数据库备份账号:backup ## 1. 流式备份 流式备份模式,是Percona XtraBackup支持的一种备份形式,他不会将备份文件输出到备份目录,他会将输出到SDTOUT的文件合成一个tar或者xbstream格式的文件 这样我们可以用一些程序对其进行操作,例如压缩或者加密 xbstream格式为xtrabackup用来同时支持压缩和流式的文件格式 ## 2. 使用xbstream ### 2.1 备份成一个文件 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=xbstream /oradata/data/mysql/xtra> /oradata/data/mysql/xtra/backup.xbstream ``` [image:833 size:orig] 从日志上我们可以看出比传统的备份多出了streaming动作 最后的文件如下图 [image:834 size:orig] ### 2.2 流式备份并压缩文件 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=xbstream --compress /oradata/data/mysql/xtra> /oradata/data/mysql/xtra/backup_compress.xbstream ``` 可以看出比上面的多了个压缩的动作 [image:835 size:orig] 可以看到文件比上面的要小 [image:836 size:orig] ### 2.3 解压备份到指定目录 ``` xbstream -x < /oradata/data/mysql/xtra/backup.xbstream -C /oradata/data/mysql/xtra/ ``` 注意这里直接将所文件解压到指定目录,而不是在一个以日期为名称的文件夹中 目录必须事先存在 压缩和未压缩的文件都使用该命令 [image:837 size:orig] ### 2.4 传到远程服务器并解压 这里需要配置ssh互信,不然会卡住 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=xbstream --compress /oradata/data/mysql/xtra | ssh mysql@11.12.14.30 "xbstream -x -C /oradata/data/mysql/xtra/" ``` ## 3. 使用tar ### 3.1 备份成tar格式(打包) 注意这里无法使用--compress,该参数只支持stream ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=tar /oradata/data/mysql/xtra> /oradata/data/mysql/xtra/backup.tar ``` 如果需要压缩功能可使用如下命令 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=tar /oradata/data/mysql/xtra | gzip - > /oradata/data/mysql/xtra/backup_compress.tar.gz ``` 或者 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=tar /oradata/data/mysql/xtra | bzip2 - > /oradata/data/mysql/xtra/backup_compress.tar.bz2 ``` 注意解包需要用-i参数,如 ``` $ tar -xizvf backup_compress.tar.gz ``` ### 3.2 发送到远程服务器 这里需要配置ssh互信,不然会卡住 ``` innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 --stream=tar /oradata/data/mysql/xtra | ssh root@11.12.14.30 "cat - > /oradata/data/mysql/xtra/backup.tar" ``` ## 4. 参考资料 本专题所有内容翻译子Percona XtraBackup的官方文档 可通过如下链接下载 [http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/](http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/) [上一章](http://www.zhaibibei.cn/mysql/xtrabackup/tutorial11)