写篇文章凑个数,基本是翻译,建议看原文。

http://www.percona.com/doc/percona-xtrabackup/2.1/innobackupex/how_innobackupex_works.html
innobackupex是percona提供的一个使用perl语言完成的脚本工具。此工具调用xtrabackup和tar4ibd工具,实现很多对性能要求并不高的任务和备份逻辑。
接下来将介绍innobackupex备份和恢复的实现原理。
 
备份
如果在程序启动阶段未指定模式,innobackupex将会默认以备份模式启动。
默认情况下,此脚本以--suspend-at-end选项启动xtrabackup,然后xtrabackup程序开始拷贝InnoDB数据文件。当xtrabackup程序执行结束,innobackupex将会发现xtrabackup创建了xtrabackup_suspended_2文件,然后执行FLUSH TABLES WITH READ LOCK,此语句对所有的数据库表加读锁。然后开始拷贝其他类型的文件。
如果--ibbackup未指定,innobackupex将会自行尝试确定使用的xtrabackup的binary。其确定binary的逻辑如下:首先判断备份目录中xtrabackup_binary文件是否存在,如果存在,此脚本将会依据此文件确定使用的xtrabackup binary。否则,脚本将会尝试连接database server,通过server版本确定binary。如果连接无法建立,xtrabackup将会失败,需要自行指定binary文件。
在binary被确定后,将会检查到数据库server的连接是否可以建立。其执行逻辑是:建立连接、执行query、关闭连接。若一切正常,xtrabackup将以子进程的方式启动。
FLUSH TABLES WITH READ LOCK是为了备份MyISAM和其他非InnoDB类型的表,此语句在xtrabackup已经备份InnoDB数据和日志文件后执行。在这之后,将会备份 .frm, .MRG, .MYD, .MYI, .TRG, .TRN, .ARM, .ARZ, .CSM, .CSV, .par, and .opt 类型的文件。
当所有上述文件备份完成后,innobackupex脚本将会恢复xtrabackup的执行,等待其备份上述逻辑执行过程中生成的事务日志文件。接下来,表被解锁,slave被启动,到server的连接被关闭。接下来,脚本会删掉xtrabackup_suspended_2文件,允许xtrabackup进程退出。
 
恢复
为了恢复一个备份,innobackupex需要以--copy-back选项启动。
innobackupex将会首先通过my.cnf文件读取如下变量:datadir, innodb_data_home_dir, innodb_data_file_path, innodb_log_group_home_dir,并确定这些目录存在。
接下来,此脚本将会首先拷贝MyISAM表、索引文件、其他类型的文件(如:.frm, .MRG, .MYD, .MYI, .TRG, .TRN, .ARM, .ARZ, .CSM, .CSV, par and .opt files),接下来拷贝InnoDB表数据文件,最后拷贝日志文件。拷贝执行时将会保留文件属性,在使用备份文件启动MySQL前,可能需要更改文件的owener(如从拷贝文件的user更改到mysql用户)。

innobackupex工作原理相关推荐

  1. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

  2. 深入理解Nginx工作原理

    1 反向代理 1.1 概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给intern ...

  3. 高频开关电源原理_程控开关电源的工作原理

    本文介绍了开关电源的工作原理以及它的特点. 程控开关电源要要比线性电源复杂得多. 下图是典型的开关电源工作原理图. 首先对 220 V/50Hz 的 AC 输入,通过桥式整流器进行整流 储能电容对整流 ...

  4. Servlet生命周期与工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  5. java的工作原理你知道吗_每天用Mybatis,但是Mybatis的工作原理你真的知道吗?

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,于是边参考别人的博客,边看源码就开干了. 核心部件:SqlSession Executor Stat ...

  6. linux网络管理原理,Linux__网络管理(物理层 数据链路层 网络层工作原理)

    千锋云计算逆战班11点后打卡 今天学习后,进行复习下,物理层 数据链路层  网络层 的工作原理 物理层关心的两件事情:1.信号 2.介质 先说信号:信号分为模拟信号和数字信号 模拟信号: 模拟信号,不 ...

  7. HDD工作原理 导图

    以上导图介绍了我们使用的 (HDD)机械硬盘的基本构造以及核心工作原理,对于大家扫盲有所帮助 参考文档: https://blog.csdn.net/yizhaoxin/article/details ...

  8. 路由和交换机工作原理

    路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种"互连"并没有什么实际意义.因 ...

  9. Google工作原理

    今天在晚上看到一个图,讲解google的工作原理,感觉写的不错.贴过来方便以后深入的研究. 转载于:https://www.cnblogs.com/muyuge/archive/2010/07/06/ ...

  10. 【摄像头】摄像机工作原理

    1.摄像机工作原理 外部光线穿过镜头(lens)后, 经过滤光片(color filter)滤波后照射到光学传感器(Sensor)上面, Sensor 将从 lens 上传导过来的光线转换为电信号,再 ...

最新文章

  1. 动软代码生成V2.74模版简介
  2. linux yield_linux内核的一些知识点(上)
  3. C语言中函数可变参数解析
  4. python常用8大算法
  5. 科大星云诗社动态20210413
  6. 分享一个近期遇到的逻辑漏洞案例
  7. 去除对象中的类型集合
  8. 电机的入门之路系列5--二相四线,四相五线,四相六线电机的区分方法
  9. 搭建Sql Server AlwaysOn 视频教程
  10. 计算机专业毕设外文翻译springboot_java毕业设计_springboot框架的计算机系党员信息管理系统...
  11. Android token使用
  12. 计算机组成原理疑难知识点
  13. 前端-回到顶部效果总结
  14. android手机通过蓝牙连接佳博打印机
  15. 第一次给笔记本换固态硬盘
  16. 个人发卡程序手机版自适应源码 完美版对接免签约支付
  17. core网络课程整理(core概述及启动讲解)
  18. JAVA Io 流 字符流 编码表 编码和解码的方法
  19. 为何两个完全一样的字符串相比较却不一样
  20. libyuv转码出现“corrupted size vs. prev_size”错误

热门文章

  1. php上传文件 按日期文件夹,fckeditor上传文件按日期存放及重命名方法
  2. echart重新加载数据_在asp.net core中动态加载最新的配置信息
  3. python3 与python2 异常处理的区别与联系
  4. Thymeleaf 模板布局三种区别
  5. HBuilde H5开发,关于JSON的Storage存储
  6. c++primer 容器算法整理一
  7. what is callback?
  8. 世界完全对称日计算(C++)
  9. 组织和遍历TreeView里面的数据
  10. android js桥接,一种JavaScript和原生APP之间数据交互方法与流程