1、innobackupex备份原理

、innobackupex启动并fork一个进程启动xtrabackup,然后等待xtrabackup备份InnoDB文件;
、xtrabackup备份时存在两个线程,一个负责复制redo,一个负责复制ibd文件;
redo复制线程先启动,从最新checkpoint开始顺序复制redo
数据复制线程在redo线程后启动,负责复制ibd文件,innobackupex一直处于等待状态
、xtrabackup拷贝完成idb后,通知innobackupex,同时自己进入等待,redo线程仍然继续复制redo;
、innobackupex收到xtrabackup通知后,执行FLUSH TABLES WITH READ LOCK(FTWRL),取得一致性位点,然后开始备份非InnoDB文件;
包括 frm、MYD、MYI、CSV、opt、par等文件,此时数据库全局只读状态非InnoDB表比较多的话时间可能会比较长
、当innobackupex拷贝完所有非InnoDB表文件后,通知xtrabackup,同时自己进入等待;
、xtrabackup收到innobackupex备份完非InnoDB通知后,就停止redo拷贝线程,然后通知innobackupex日志复制完成;
、innobackupex收到redo备份完成通知后,就开始解锁,执行UNLOCK TABLES;
、innobackupex和xtrabackup进程各自完成收尾工作,如资源的释放、写备份元数据信息等,innobackupex等待xtrabackup子进程结束后退出。

2、常用参数说明

常用参数:
--user=USER #指定备份用户,不指定的话为当前系统用户
--password=PASSWD #指定备份用户密码
--port=PORT #指定数据库端口
--defaults-group=GROUP-NAME #在多实例的时候使用
--host=HOST #指定备份的主机,可以为远程数据库服务器
--apply-log #回滚日志
--database #指定需要备份的数据库,多个数据库之间以空格分开
--defaults-file #指定mysql的配置文件
--copy-back #将备份数据复制回原始位置
--incremental #增量备份,后面跟要增量备份的路径
--incremental-basedir=DIRECTORY #增量备份时使用指向上一次的增量备份所在的目录
--incremental-dir=DIRECTORY #增量备份还原的时候用来合并增量备份到全量,用来指定全备路径
--redo-only #对增量备份进行合并
--rsync #加快本地文件传输,适用于non-InnoDB数据库引擎。不与--stream共用
--safe-slave-backup #会暂停slave的sql线程,待备份结束后再启动
--no-timestamp #生成的备份文件不以时间戳为目录.
--slave-info #打印二进制日志的position和主库的名字,写入xtrabackup_slave_info文件

3、全量备份与恢复

##全量备份
innobackupex --defaults-file=/data01//my3306.cnf --user=root --password=root --socket=/data01//run/mysql.sock /data01//backup
##全量恢复
innobackupex --apply-log /data01//backup/--14_21--
##将恢复的数据文件复制到datadir
innobackupex --defaults-file=/data02//my3307.cnf --user=root --password=root --copy-back /data01//backup/--14_21--

4、增量备份与恢复

xtrabackup是支持增量备份的,但是只能对InnoDB做增量,InnoDB每个page有个LSN号,LSN是全局递增的,page被更改时会记录当前的LSN号,每次备份会记录当前备份到的LSN(xtrabackup_checkpoints文件中),增量备份就是只拷贝LSN大于上次备份的page,比上次备份小的跳过,每个ibd文件最终备份出来的是增量 delta 文件。
MyISAM 是没有增量的机制的,每次增量备份都是全部拷贝的。
增量备份过程和全量备份一样,只是在ibd文件拷贝上有不同。

##全量备份
innobackupex --defaults-file=/data01//my3306.cnf --user=root --password=root --socket=/data01//run/mysql.sock /data01//backup
##增量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --incremental /data01//backup/incr --incremental-basedir=/data01//backup/--14_21-- --parallel=
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --incremental /data01//backup/incr --incremental-basedir=/data01//backup/incr/--14_22-- --parallel=
##增量恢复
--全量恢复
innobackupex --apply-log --redo-only /data01//backup/--14_21--
##将增量1应用到完全备份##
innobackupex --apply-log --redo-only /data01//backup/--14_21-- --incremental-dir=/data01//backup/incr/--14_22--
##将增量2应用到完全备份,注意不加 --redo-only 参数了##
innobackupex --apply-log /data01//backup/--14_21-- --incremental-dir=/data01//backup/incr/--14_23--
##把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据##
innobackupex --apply-log /data01//backup/--14_21--

Xtrabackup备份与恢复MySQL的更多相关文章

  1. Xtrabackup 对MYSQL进行备份还原

    在操作MYSQL中注意两个概念: 干什么都记得 flush privileges; grant all on *.* to root@'localhost' identified by 'passwo ...

  2. 利用xtrabackup备份mysql数据库

    利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...

  3. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

  4. xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'

    xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files' 1.使用xtrabackup备份MySQL时出现如下报错 ...

  5. 使用第三方工具Xtrabackup进行MySQL备份

    使用Xtrabackup进行MySQL备份: 一.安装 1.简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtr ...

  6. 使用Percona Xtrabackup创建MySQL slave库

    一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...

  7. Xtrabackup实现MySQL备份

    一.xtrabackup介绍 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写)它由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上 ...

  8. 利用XtraBackup给MYSQL热备(基于数据文件)

    利用XtraBackup给MYSQL热备(基于数据文件) By JRoBot on 2013 年 11 月 26 日 | Leave a response 利用XtraBackup给MYSQL热备(基 ...

  9. Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)     文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...

随机推荐

  1. 很有用的PHP笔试题系列三

    1. 什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰.主要特征:封装.继承.多态. 2. SESSION 与 COOKIE的区别是什么,请从 ...

  2. SpringSecurity 3.2入门(4)登录密码加密

    密码admin 进行MD5 32位加密为21232F297A57A5A743894A0E4A801FC3 增加spring-security.xml文件配置如下 <!-- 认证管理器,配置Spr ...

  3. [转]JFreeChart简介及下载、配置

    JFreeChart简介 JFreeChart是完全基于Java语言的开源项目,因此可以使用在Java开发环境中,包括Java应用程序,或者是Java Web应用都没有任何问题.结合iText项目,可 ...

  4. 关于meta标签中的http-equiv属性使用介绍

    关于meta标签中的http-equiv属性使用介绍 meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标 ...

  5. OLEDB 静态绑定和数据转化接口

    OLEDB 提供了静态绑定和动态绑定两种方式,相比动态绑定来说,静态绑定在使用上更加简单,而在灵活性上不如动态绑定,动态绑定在前面已经介绍过了,本文主要介绍OLEDB中的静态,以及常用的数据类型转化接 ...

  6. Format - DateTime

    1. Long Date/Short Date/Long Time/Short Time,可以在系统的“Region and Language”中找到相应设置: 2. ISO Format/Local ...

  7. Android实现双进程守护

    做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看看这些办法是 ...

  8. js 中有关字符串的操作

    1. substring(start, end) 1). 包头不包尾 2). start 必需项 3). end 非必需项 4). start end 谁大谁小无所谓 5). start end 若为 ...

  9. Python 列表排序方法reverse、sort、sorted操作方法

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  10. HCNA配置手工负载分担模式链路聚合

    一.配置手工负载分担模式链路聚合 链路聚合(Link Aggregation)是将—组物理接口捆绑在一起作为一个逻辑接口来增加带宽的一种方法,又称为多接口负载均衡组(Load Sharing Grou ...