innobackupex实际上是percona-xtrabackup的perl整合脚本,功能当然更强大一些.

xtrabackup备份实际上是在线的物理热备,为什么和么说呢,因为实际上他是以拷贝mysql物理文件来备份的方式,只是加入了一些锁和钩子来避免数据缺失,优势当然就是快了,物理拷贝始终是速度最快的备份方式,缺点就是占用空间大.

备份原理很多文章有写,重点在于备份初期会创建一个redo的钩子,让在备份期间产生的数据都能记录下来,而备份数据文件时也会锁一下表,这样数据就会更完整.

安装方法在另一篇文章已经说了,就不多说了,下面直接介绍使用方法和一些参数说明.

xtrabackup支持全备和增备,但是我个人不建议用增备,因为增备效果不怎么样,而且直接拷贝binlog其实也挺好用,所以全备+binlog就可以了.

全备命令:

/usr/bin/innobackupex --defaults-file=$cnfdir --user=root --password=$pwdr --host=$hosts --parallel=4 --throttle=400 --stream=tar  $backupdir 2>$backupdir/backtip.log |gzip >$backupdir/$backname.tar.gz

其中

--defaults-file                备份数据库的配置文件my.cnf的路径

--user=root                  备份操作用户名,一般都是root用户,但可以改 
--password=$pwdr                密码
--host=$hosts                主机ip,本地可以不加,ssh传输,要开放端口
--parallel=4                  并行个数,根据主机配置选择合适的,默认是1个,多个可以加快备份速度。

--throttle=400                io限制数,一般来说并行能增加速度,但是IO也高,限制能减少影响

--stream=tar                  压缩类型,这里选择tar格式,好像也只能是tar
$backupdir                  备份存放的目录
2>$backupdir/backtip.log            备份日志,将备份过程中的输出信息重定向到log
|gzip >$backupdir/$backname.tar.gz       备份文件后用管道再压缩,最后成为一个压缩文件,减少占用空间

如果是从库,还可以加从库参数

--slave-info                                    备份目录下会多生成一个xtrabackup_slave_info 文件,
这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE=‘‘,
MASTER_LOG_POS=0

完成备份后出现

innobackupex: completed OK!

就是完成了.

而用他来恢复数据,需要走三部

恢复第一步:应用日志。
innobackupex --user=root --password=**** --defaults-file=****/my.cnf --apply-log --use-memory=4G /backup/****
恢复第二步:拷贝文件。
innobackupex --user=root --password=**** --defaults-file=****/my.cnf --copy-back /backup/****

其中

--defaults-file=/etc/my.cnf     恢复会使用my.cnf文件把需要恢复的文件,恢复到my.cnf指定的位置。
--apply-log             这是备份时产生的日志,
--copy-back             这是备份源,解压后的备份文件。

--use-memory=4G                    为了加快恢复速度,设置可用内存参数

看到

Finished copying back files.

数据还原就完毕了

恢复第三步:修改文件权限。

因为恢复回去未必是原本mysql:mysql的权限,所以要改一下

cd 到data目录
chown -R mysql.mysql data/

最后/etc/init.d/mysqld start

虽然我并不推荐增量备份,但是还是记一下

增量备份的方法:

增量备份需要基于全备,先假设我们已经有了一个全备(/backup/mysql-data/2016-05-10_09),在该全表的基础上做增量备份。

innobackupex --defaults-file=/****/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql-data/2016-05-10_09 --incremental /backup/mysql-data

其中

--incremental-basedir            指向全备目录,

--incremental                         指向增量备份的目录。

上面语句执行成功之后,会在--incremental执行的目录下创建一个时间戳子目录,在该目录下存放着增量备份的所有文件。在备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息,全备的信息如下:

[plain]

backup_type = full-backuped

from_lsn = 0

to_lsn = 563759005914

last_lsn = 563759005914

基于该全备的增量备份的信息如下:

[plain]

backup_type = incremental

from_lsn = 563759005914

to_lsn = 574765133284

last_lsn = 574765133284

从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。

而且还可以在增量备份的基础上再做增量备份

innobackupex --defaults-file=/*****/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql-data/2016-05-10_09 --incremental /backup/mysql-data

它的xtrabackup_checkpoints记录着备份信息如下:

[plain]

backup_type = incremental

from_lsn = 574765133284

to_lsn = 574770200380

last_lsn = 574770200950

可以看到,该增量备份的from_lsn是从上一次增量备份的to_lsn开始的。

增量备份的恢复比全备要复杂很多,第一步是在所有备份目录下重做已提交的日志

增量备份的恢复比全备要复杂很多,第一步是在所有备份目录下重做已提交的日志,如:

[plain]

innobackupex --apply-log --redo-only BASE-DIR

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

其中BASE-DIR是指全备目录,INCREMENTAL-DIR-1是指第一次的增量备份,INCREMENTAL-DIR-2是指第二次的增量备份,以此类推。

这里要注意的是:最后一步的增量备份并没有--redo-only选项!还有,可以使用--use_memory提高性能。

以上语句执行成功之后,最终数据在BASE-DIR(即全备目录)下。

第一步完成之后,我们开始第二步:回滚未完成的日志:

[plain]

innobackupex --apply-log BASE-DIR

上面执行完之后,BASE-DIR里的备份文件已完全准备就绪,最后一步是拷贝:

[plain]

innobackupex --copy-back BASE-DIR

同样地,拷贝结束之后,记得检查下数据目录的权限是否正确。

innobackupex使用详解

标签:innobackupex xtrabackup

原文地址:http://arthur376.blog.51cto.com/2918801/1773026

xtrabackup(innobackupex)使用详解的更多相关文章

  1. Xtrabackup 安装 参数详解

    目录 安装 常用参数详解 innobackupex 相关参数 xtrabackup相关参数 安装 继Xtrabackup 介绍,本次来讲解安装和使用. Xtrabackup的RPM包下载地址: 系统版 ...

  2. MySQL 备份与还原详解

    相关阅读: MySQL备份和恢复具体实施 http://www.linuxidc.com/Linux/2012-12/76257.htm MySQL备份与恢复的三种方法总结 http://www.li ...

  3. (转)MySQL备份原理详解

    MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...

  4. MySQL数据库备份详解

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  5. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  6. OpenStack的Trove组件详解

    一:简介     一.背景 1. 对于公有云计算平台来说,只有计算.网络与存储这三大服务往往是不太够的,在目前互联网应用百花齐放的背景下,几乎所有应用都使用到数据库,而数据库承载的往往是应用最核心的数 ...

  7. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  8. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  9. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

随机推荐

  1. 1149 Dangerous Goods Packaging

    When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...

  2. PDF转HTML工具——用springboot包装pdf2htmlEX命令行工具

    Convert PDF to HTML without losing text or format. 用springboot把pdf2htmlEX命令行工具包装为web服务, 使得PDF转HTML更方 ...

  3. C++ 面向对象高级设计

    inline关键字 类声明内定义的函数,自动成为inline函数,类声明外定义的函数,需要加上inline关键字才能成为inline函数 构造函数 应该使用列表初始化 class complex { ...

  4. SSL证书及HTTPS服务器

    1. 域名 在万网购买,略 2. 云服务器 阿里云购买,略 3. 安装lnmp 使用lnmp.org程序,略 4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV ...

  5. Think5之ajax批量删除数据功能

    //批量删除学员信息 public function deleteMany() { $id = input('post.'); //判断id是数组还是一个数值 if(is_array($id)){ f ...

  6. hdu2363 枚举最短路

    (1) 二分     把所有的高度都拿过来,组合起来,sort一遍,然后二分,找到能连通的最小的那个,但这里存在一起情况,就是遇到高度差相等的时候会bug.... (2) 枚举 连通直接break   ...

  7. 缓冲区溢出分析第05课:编写通用的ShellCode

    前言 我们这次的实验所要研究的是如何编写通用的ShellCode.可能大家会有疑惑,我们上次所编写的ShellCode已经能够很好地完成任务,哪里不通用了呢?其实这就是因为我们上次所编写的ShellC ...

  8. poj2112 二分最大流+Floyd

    题意:      一个农场主有一些奶牛,和一些机器,每台机器有自己的服务上限,就是一天最多能给多少头奶牛挤奶,给你任意两点的距离,问你让所有的奶牛都被挤奶时,奶牛于机器最远距离的最近是多少. 思路: ...

  9. pr中打开Audition编辑剪辑?

    前景 现在一般的adobe全家桶都是一键安装破解. 天翼网盘链接,下载不限速,没有账号就现注册一个即可. https://cloud.189.cn/t/UZRjuqAZ3E7r (访问码:8ago) ...

  10. 第四部分 数据搜索之使用HBASE的API实现条件查询

    因为数据清洗部分需要用到Mapreduce,所以先解决hbase的问题,可以用命令先在hbase存一下简单的数据进行查询,之后只要替换数据就可以实现了原本功能 在看该部分前,确保Hase API看了, ...