压缩备份集

stream模式支持且只支持:tar 和 xbstream 两种格式,后者是xtrabackup提供的专有格式,解包时需要同名的专用命令处理

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=backup --password='backup' --stream=tar /tmp | gzip -> /data/mysqldata/backup/xtra_full.tar.gz

innobackupex: Created backup directory /tmp

这段信息表明,流格式标准输出的数据会被临时保存到我们指定的/tmp目录

innobackupex: You must use -i (--ignore-zeros) option for extraction of the tar stream.

最后这条提示我们,解包时必须使用-i参数

[mysql@master backup]$ du -sh *
2.8G    2015-07-07_17-11-03
14M     xtra_full.tar.gz
打包压缩后的差距是很大的
mkdir xbstream
innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=backup --password='backup' --stream=xbstream ./ > /data/mysqldata/backup/xbstream/incremental.xbstream
./是以当前目录作为临时存放备份的目录

解包
[mysql@master backup]$ cd xbstream/
[mysql@master xbstream]$ xbstream -x < incremental.xbstream
[mysql@master xbstream]$ ls
backup-my.cnf  ibdata1               mysql               sakila  xtrabackup_binlog_info  xtrabackup_info
fandb          incremental.xbstream  performance_schema  test    xtrabackup_checkpoints  xtrabackup_logfile

Incremental Streaming Backups using xbstream and tar Incremental streaming backups can be performed with the xbstream streaming option. Currently backups are packed in custom xbstream format. With this feature taking a BASE backup is needed as well.

Taking a base backup:
innobackupex /data/backups

Taking a local backup:
innobackupex --incremental --incremental-lsn=LSN-number --stream=xbstream ./ > incremental.xbstream

Unpacking the backup:
xbstream -x < incremental.xbstream

Taking a local backup and streaming it to the remote server and unpacking it:

innobackupex  --incremental --incremental-lsn=LSN-number --stream=xbstream ./ | /
ssh user@hostname " cat - | xbstream -x -C > /backup-dir/"

测试:

[mysql@master xbstream]$ xbstream -x -v < incremental.xbstream
[mysql@master xbstream]$ ls
backup-my.cnf  ibdata1               mysql               sakila  xtrabackup_binlog_info  xtrabackup_info
fandb          incremental.xbstream  performance_schema  test    xtrabackup_checkpoints  xtrabackup_logfile

可以是用-C指定解压到哪个目录
xbstream -x -v < incremental.xbstream -C /tmp

[mysql@master xbstream]$ more xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 143684677
last_lsn = 143684677
compact = 0
recover_binlog_info = 0

官方文档示例有问题,最后改成这样:

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=backup --password='backup' --incremental --incremental-lsn=143684677 --stream=xbstream ./ | ssh mysql@192.168.255.202 "  xbstream -x -C  /data/mysqldata/backup/"

远程端:
[mysql@slave backup]$ ls
backup-my.cnf  ibdata1.delta  mysql               sakila  xtrabackup_binlog_info  xtrabackup_info
fandb          ibdata1.meta   performance_schema  test    xtrabackup_checkpoints  xtrabackup_logfile

Compact Backups

当备份innodb表时,可以忽略secondary index pages.这回缩小备份集的大小.负面影响是,这回增加prepare用时,因为要重建secondary index
Compact Backups需开启innodb-file-per-table

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=backup --password='backup' --compact /data/mysqldata/backup/

查看xtrabackup_checkpoints可以看到compact = 1

[mysql@master 2016-08-22_22-50-51]$ more xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 143789687
last_lsn = 143789687
compact = 1
recover_binlog_info = 0

Preparing Compact Backups

prepare compact backup需要指定 --reduild-indexes参数

innobackupex --apply-log --rebuild-indexes /data/mysqldata/backup/2016-08-22_22-50-51/ 

Restoring Compact Backups

innobackupex --copy-back /path/to/BACKUP-DIR

compress备份

通过--compress压缩备份,指定该参数后实际会传递给xtrabackup命令,故只能备份innodb文件,通过'quicklz'算法压缩
可以使用--compress-threads增加压缩并发,提高速度
使用这种方式备份会生成以.qp结尾的压缩文件,实测2.9G的备份压缩后52M

开始备份

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf --user=backup --password='backup' --stream=xbstream --compress --compress-threads=4 ./ > /data/mysqldata/backup/backup.xbstream

解压xbstream

xbstream -x < backup.xbstream -C /data/mysqldata/backup/fan

解压后,qpress文件并没有解压,在xtrabackup2.1.4之前使用命令进行解压

 for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done

xtrabackup2.1.4之后可以使用--decompress参数解压,这个参数实际调用了qpress命令,所以需要先安装qpress,下面通过percona的yum源来安装

自动安装percona yum源

rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

[root@master ~]# rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
获取http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
准备中...                             ################################# [100%]
正在升级/安装...
   1:percona-release-0.0-1            ################################# [100%]

手动配置percona yum源

[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1

安装

[root@master ~]# yum install qpress
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * extras: mirrors.nwsuaf.edu.cn
 * updates: mirrors.neusoft.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 qpress.x86_64.0.11-1.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==================================================================================================================================================
 Package                           架构                              版本                                源                                  大小
==================================================================================================================================================
正在安装:
 qpress                            x86_64                            11-1.el7                            percona                             31 k

事务概要
==================================================================================================================================================
安装  1 软件包

总计:31 k
安装大小:65 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : qpress-11-1.el7.x86_64                                                                                                        1/1
  验证中      : qpress-11-1.el7.x86_64                                                                                                        1/1 

已安装:
  qpress.x86_64 0:11-1.el7                                                                                                                        

完毕!

安装完毕,解压

innobackupex --decompress /data/mysqldata/backup/fan/

之后就可以prepare了

PerconaXtraBackup 压缩备份集的更多相关文章

  1. RMAN增量备份-备份保留策略-设置备份集属性

    RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...

  2. 如何删除控制文件中过去rman备份到磁带的备份集

    问题描述: 早上做数据库巡检,发现FRA(flash recovery area)空间使用率达到66%,是平时的两倍.由于库不大,备份策略是本地磁盘备份,每天一全备,REDUNDANCY 1 ,备份完 ...

  3. SQL Server 查看备份集元数据的 4 种方法。

    方法 1. restore labelonly 方法 2. restore headeronly 方法 3. restore filelistonly 方法 4. restore verifyonly ...

  4. ASM上的备份集如何转移到文件系统中

    刚看到一个有关asm备份集的迁移的问题.特地整理了一下 方法有两个. 方法一:使用rman,rman是一个非常好的工具,不仅仅是备份的作用,如果你只用rman作备份的话,有些浪费了. 通过rman里的 ...

  5. sql server 2008 R2 压缩备份数据库

    今天需要把一个省外项目的数据库从服务器上备份.拷贝到本机(跨地域传输数据库备份文件). 连上VPN,通过远程桌面连接,连接上服务器,发现数据库文件已经有20G以上大小了. 文件太大,公司网络也不稳定, ...

  6. ASM的备份集在文件系统上恢复测试

    背景:最近时常有客户咨询这类问题,其实很简单一个操作,但由于每个人的理解差异,也容易出现各种问题或者误解,本文主要总结下这个过程以及常遇到的问题处理. 环境:Site A(Oracle RAC 11. ...

  7. shell脚本----周期压缩备份日志文件

    一.日志文件样式 二.目标 1.备份压缩.log结尾&&时间样式为“date +%Y%m%d”的日志文件(如:20170912.20160311等) 2.可指定压缩范围(N天前至当天) ...

  8. [20170703]从备份集取出spfile转化为pfile.txt

    [20170703]从备份集取出spfile转化为pfile.txt --//上个星期的事情,要从备份集里面取出看看spfile文件某个参数当时的情况,结果尝试命令老是出错,做一个记录.--//最后选 ...

  9. sql server 压缩备份数据库

    转自 https://www.cnblogs.com/527289276qq/p/6273291.html 今天需要把一个省外项目的数据库从服务器上备份.拷贝到本机(跨地域传输数据库备份文件). 连上 ...

随机推荐

  1. vyatta常用操作

    vyatta是一个小巧而强大的基于debian的 Linux路由发行版,随着云计算的深入,云内部的虚拟机通信已经摆脱了物理路由器的束缚,而路由器变成了一个逻辑存在,而不是一个物理实体,云路由由此诞生, ...

  2. SQL中EXISTS怎么用[转]

    SQL中EXISTS怎么用 1 2 3 4 分步阅读 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False 方法/步骤 1 EXISTS用于 ...

  3. RPC学习----Thrift快速入门和Java简单示例

    一.什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. RPC协议 ...

  4. Global.asax 文件是什么

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  5. sqlserver索引与查询优化

    此文为转载,仅做保存使用,出处:http://www.cr173.com/html/8688_all.html 在数据库存优化设计中往往会提到索引,这编文章就来详细的说明一下在 SQL SERVER ...

  6. Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  7. homestead注意事项

    1.如何修改php.ini Here is how you grant read/write access to php.ini, modify it, save changes & relo ...

  8. WinForm用户自定义控件,在主窗体加载时出现闪烁;调用用户控件出现闪烁,需要鼠标才能够显示

    转载自:http://www.dotblogs.com.tw/rainmaker/archive/2012/02/22/69811.aspx 解决方案: 在调用用户控件的窗体里面添加一下代码: pro ...

  9. Excel2016右键新建工作表,打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”的解决办法

    上午新建excel工作表时,发现新建完之后居然打不开 提示: 尼玛这坑爹的,难道我的Excel坏了?? 排查问题之后发现 只有新建“Microsoft Excel 工作表”时会出现这种问题,新建“Wo ...

  10. ssh链接数设置问题

    今天碰到一个问题,脚本执行scp文件拷贝,因为拷贝的服务器很多,所以拷贝脚本的实现是在把拷贝动作转后台执行,结果发现一堆文件拷贝失败.比较有迷惑性的是,拷贝失败的通常是同一个文件夹拷贝到所有服务器时失 ...