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. Spring课程 Spring入门篇 4-4 Spring bean装配(下)之Autowired注解说明3 多选一 qualifier

    本节主要讲述以下内容: 1 简述 2 代码演练 2.1 注解qualifier运用 1 简述 1.1 何种情况使用qualifier注解? a 按类型自动装配多个bean实例,可以用@qualifie ...

  2. socket应用

    socket的使用 socket.socket(网络层ip协议蔟,传输层协议类型,默认协议) # server.py # 导入模块 import socket # 实例化服务器,使用ipv4协议,tc ...

  3. ssh-keygen使用

    ssh-keygen 作用就是验证主机和用户公钥加密 值得注意的是passphrase选项询问 是对自身密钥的保护,因为在ssh通信前,密钥是不受保护的,如果填来的话通常会使用aes256-cbc的对 ...

  4. vue——指令系统

    指令系统,可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. 在vue中提供了一套为数 ...

  5. css rgba/hsla知识点讲解及半透明边框

    一.RGBA(R,G,B,A) 参数: R:红色值.正整数 | |百分数 G:绿色值.正整数 | |百分数 B:蓝色值.正整数 | |百分数 A:Alpha透明度.取值0~1之间. 说明:此色彩模式与 ...

  6. Flink -- Java Generics Programming

    Flink uses a lot of generics programming, which is an executor Framework with cluster of executor ha ...

  7. C语言买卖股票问题

    遇到个简单的算法题,没有当场解出来,以后可以写伪代码表达思路. 数组中保存每天的股票价值,求买入卖出的时间和最大利润,比较好的解法如下: 伪代码: begin start day = 0; end d ...

  8. java 将long类型的数值转无符号数

    由于JAVA中基本数据类型均为有符号数,而且最大数据类型long为8字节假如long为负数时,最高位为1,转为无符号数时会超出long的取值范围,所以转换规则如下: 方法: public static ...

  9. CAA介绍(转)

    CAA是DS公司正对于其一系列产品,eg:CATIA,ENOVIA,DELIMA,etc,进行二次开发的一个环境.与VC结合的比较紧密.CAAV4是用于Unix/Linux的,到CAAV5才移植到Wi ...

  10. Selenium2学习(三)-- 八种元素元素定位(Firebug和firepath)

    前言 自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位.元素定位在这四个环节中是至关 ...