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. C# 安装WindowService服务和相关

    https://www.cnblogs.com/charlie-chen2016/p/8031774.html 这是一个备份数据库的服务,逻辑很简单,就是通过定时器实现在特定的时间执行SQL语句备份数 ...

  2. mysql 查两个表相同的值

    比如一个数据库 表A和表B 都有一个username字段, 现查出与表A中username值相同的表B的username和password数据 select B.username,B.password ...

  3. Flask插件---flask_script与flask_migrate

    import app from flask_script import Manager from flask_migrate import Migrate,MigrateCommand my_app ...

  4. 1094 FBI树

    1094 FBI树 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver       题目描述 Description 我们可以把由“ ...

  5. css滤镜模糊效果filter和backdrop-filter

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Angular js ng-bind 和ng-module的区别

    1.ng-bind 是从$scope ->view 的单向绑定 ,<span ng-bind="object.***"></span>只用于展示数据 ...

  7. Ruby在Windows上安装

    Ruby在Windows下安装windows下的rails2.02环境搭建 ROR本地安装的技术含量比较高的 一.安装Ruby1.下载Ruby()安装包双击安装,安装过程中注意选中"Enab ...

  8. ubuntu下go开发环境

    https://qiita.com/necomeshi/items/676ccb669d6e6102117b 安装 https://golang.org/dl/ # 下载&解压 axel -n ...

  9. 点击一个按钮,如何让一个<div id=a>……</div>隐藏或显现?

    <div id=divid>123</div>< button onclick="usr()">Click</button>< ...

  10. scrum第四次冲刺

    scrum 第四次冲刺 一.项目目的 为生活在长大的学生提供方快捷的生活服务,通过帖子发现自己志同道合的朋友,记录自己在长大点滴.本项目的意义在于锻炼团队的scrum能力,加强团队合作能力.确定本项目 ...