在InnoDB内部会维护一个redo日志文件,我们也可以叫做事务日志文件,事务日志文件会存储每一个InnoDB表数据的更改记录。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步骤:1.应用已经提交的事务日志到数据文件;2.将事务日志里还未提交的更改回滚。

xtrabackup在启动时会记住 log sequence number(LSN,每条事务记录的唯一编号),并且复制所有的数据文件,复制过程需要一段时间,所以这段时间数据库的更改就会使备份文件和实际数据不一致。xtrabackup解决此问题的方式是,xtrabackup会开启一个后台进程,用于监视事务日志,并将备份期间事务日志里的更改记录下来。

以上是xtrabackup备份的过程,回复的第一步是准备(prepare)过程。在此过程,xtrabackup根据所记录的 事务日志里的变化,模仿InnoDB启动时的动作对数据进行‘崩溃恢复’,执行完这个过程后,数据就可以用于还原数据库了。

但是以上机制只能备份和恢复Innodb引擎的表,对于myisam表,precona 将xtrabackup通过perl封装成innobackupex脚本,此脚本提供了对myisam表的备份支持。innobackupex脚本会在xtrabackup执行完InnoDB表的备份后,执行flush tables with read lock 来阻止对数据库的写入,并对myisam相关文件进行备份,最后释放锁。

转载于:https://blog.51cto.com/kaifly/1589624

xtrabackup 官方原理相关推荐

  1. MySQL · 物理备份 · Percona XtraBackup 备份原理

    前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 ...

  2. 想了解Xtrabackup备份原理和常见问题分析,看这篇就够了

    摘要:本文来自华为云MySQL研发团队,主要分享了MySQL备份工具Xtrabackup的备份过程.华为云数据库团队对其做的优化改进,以及在使用中可能遇到的问题与解决方法. 本文分享自华为云社区< ...

  3. mysql xtrabackup 保护模式_MySQL Xtrabackup备份原理和实现细节

    备份原理: XtraBackup基于InnoDB的crash-recovery功能.它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-reco ...

  4. mysqldump和xtrabackup备份原理实现说明

    MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现.物理备份 ...

  5. MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述

    MariaDB/MySQL备份恢复系列: 备份和恢复(一):mysqldump工具用法详述 备份和恢复(二):导入.导出表数据 备份和恢复(三):xtrabackup用法和原理详述 xtrabacku ...

  6. Xtrabackup介绍与原理

    一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...

  7. MySQL建表枚举分区SQL,【mysql备份】02、Xtrabackup备份mysql

    一.Xtrabackup概述 1.Xtrabackup简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb ...

  8. xtrabackup对MySQL数据库的备份及恢复教程

    xtrabackup xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表).对MyISAM存储引擎会锁表,也是很郁闷的因为线上使用 ...

  9. 备份工具之Xtrabackup

    Xtrabackup xtrabackup是基于InnoDB存储引擎灾难恢复的.它复制InnoDB的数据文件,尽管数据文件在内部是非一致性的,但在执行灾难恢复时可以保证这些数据文件是一致的,并且可用. ...

最新文章

  1. Outlook中删除重复的邮件
  2. 开发技巧: 简述iOS应用间的互相跳转
  3. html修改span中的内容,在HTML中抓取span的内容
  4. CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...
  5. 解析.sens数据集
  6. 在Spring Boot中使用Vaadin的简介
  7. Visual Studio Code使用问题
  8. 虚拟机几种网络连接方式的区别
  9. 如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...
  10. 类与对象的小结 java 1614782140
  11. 《OD大数据实战》MapReduce实战
  12. 数据分箱1——人工手动分箱
  13. 面试高并发,看这篇就够了(下)
  14. linux下安装mysql-5.7.20
  15. 微信小程序云开发教程-JavaScript入门(6)-常用函数
  16. 佳能g2800清废墨_佳能G2800打印机清零
  17. 计算二叉树叶子结点数目
  18. 物联网平台发展的4个阶段和5个实践案例
  19. Gravity:环形二维码扫描识别传感器详细介绍和工作原理
  20. [教程]安装青鸟云Web服务器

热门文章

  1. Altium Designer 09 (Protel)总线使用方法(解决导入PCB无网络标号问题)
  2. 局部遮罩 shade(二)
  3. Qt调用OpenCV汇总(1)
  4. win32汇编指令汇总
  5. c# winform 中的坐标系
  6. mysql OA_mysql优化工具—mysqloa
  7. django 怎么加权限 静态资源目录_Django1.7如何配置静态资源访问
  8. eclipse下如何打开被关闭的项目_如何在Windows 10中打开和关闭平板电脑模式
  9. 引导页 设置只显示一次
  10. android开发之bitmap转数组的方法