Percona XtraBackup工作原理

Percona XtraBackup是基于InnoDB的崩溃恢复功能。复制InnoDB数据文件,导致内部不一致的数据; 但随后它对文件执行崩溃恢复,使它们再次成为一致,可用的数据库。

这是因为InnoDB维护一个重做日志,也称为事务日志。这包含对InnoDB数据的每个更改的记录。当InnoDB 启动时,它会检查数据文件和事务日志,并执行两个步骤。它将提交的事务日志条目应用于数据文件,并对修改数据但未提交的任何事务执行撤销操作。

Percona XtraBackup通过记录日志序列号(LSN)开始工作,然后复制掉数据文件。这需要一小会时间来完成,所以如果文件正在改变,那么它们反映了数据库在不同时间点的状态。同时,Percona XtraBackup运行一个后台进程,监视事务日志文件,并从中复制更改。Percona XtraBackup需要不断地这样做,因为事务日志是以循环方式编写的,并且可以在一段时间后重复使用。Percona XtraBackup从数据文件开始执行以来每次更改都需要事务日志记录。

Percona XtraBackup将使用备份锁 ,作为一个轻量级替代。此功能在Percona Server 5.6+中可用。Percona XtraBackup使用这个自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。当服务器支持备份锁时,xtrabackup将首先复制InnoDB数据,运行并复制MyISAM表和.frm文件。一旦完成,文件的备份将开始。它将备份.frm,.MRG,.MYD,.MYI,.TRG,FLUSH TABLES WITH READ LOCKLOCK TABLES FOR BACKUP.par

注意

锁定只对MyISAM和其他非InnoDB表,只有 在 Percona XtraBackup完成所有InnoDB / XtraDB数据和日志后备份。Percona XtraBackup将使用备份锁 ,作为一个轻量级替代。此功能在Percona Server 5.6+中可用。Percona XtraBackup使用这个自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。FLUSH TABLES WITH READ LOCK

之后,xtrabackup将使用阻止所有操作,可能更改二进制日志位置或 或 报告。然后xtrabackup将完成复制REDO日志文件和获取二进制日志坐标。在这完成之后xtrabackup将解锁二进制日志和表。LOCK BINLOG FOR BACKUPExec_Master_Log_PosExec_Gtid_SetSHOW MASTER/SLAVE STATUS

最后,二进制日志位置将被打印到STDERR和xtrabackup 将退出返回0如果一切正常。

需要注意的是STDERR的xtrabackup不是写在任何文件中。您必须将其重定向到一个文件,例如,。xtrabackup OPTIONS2> backupout.log

它还将在备份的目录中创建以下文件。

在准备阶段,Percona XtraBackup使用复制的事务日志文件对复制的数据文件执行崩溃恢复。完成此操作后,数据库就可以恢复和使用。

备份的MyISAMInnoDB表最终将彼此一致,因为在准备(恢复)过程之后,InnoDB的数据会前滚到备份完成的点,而不会回滚到该点开始。这个时间点匹配所采取的位置,因此MyISAM数据和准备的 InnoDB数据是同步的。FLUSH TABLES WITHREAD LOCK

简而言之,这些工具允许您通过复制数据文件,复制日志文件以及将日志应用到数据的各种组合来执行流式和增量备份等操作。

我们的公共号

来自乌龟运维 wuguiyunwei.com

xtrabackup备份原理的更多相关文章

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

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

  2. xtrabackup备份原理及流式备份应用

    目录 xtrabackup备份原理及流式备份应用 0. 参考文献 1. xtrabackup 安装 2. xtrabackup 备份和恢复原理 2.1 备份阶段(backup) 2.2 准备阶段(pr ...

  3. Percona XtraBackup 备份原理说明【转】

    本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...

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

    http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...

  5. Percona XtraBackup 备份原理

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

  6. XtraBackup 备份原理

    来着淘宝技术: http://mysql.taobao.org/monthly/2016/03/07/ https://github.com/alibaba/AliSQL 前言 Percona Xtr ...

  7. mysqldump+mydumper+xtrabackup备份原理流程

    mysqldump备份原理 备份的基本流程如下: 1.调用FTWRL(flush tables with read lock),全局禁止读写 2.开启快照读,获取此时的快照(仅对innodb表起作用) ...

  8. 从源码分析 XtraBackup 的备份原理

    MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup. 前者常用于MySQL企业版,后者常用于MySQL社区版.Percona Server ...

  9. xtrabackup备份还原mariadb数据库

    一.xtrabackup 简介 xtrabackup 是由percona公司开源免费的数据库热备软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份,对于myisam的备份同样需要 ...

随机推荐

  1. 用户登录(Material Design + Data-Binding + MVP架构模式)实现

    转载请注明出处: http://www.cnblogs.com/cnwutianhao/p/6772759.html MVP架构模式 大家都不陌生,Google 也给出过相应的参考 Sample, 但 ...

  2. VueJS 组件参数名命名方式和前台显示

    camelCase(驼峰式) 和. kebab-case(短横线式) HTML 特性是不区分大小写的.所以,当使用的不是字符串模版,camelCased (驼峰式) 命名的 prop 需要转换为相对应 ...

  3. [ext4]空间管理 - 分配机制

     在Ext4系统中,存在很多分配策略,比如预分配.多块分配.延迟分配等   Prealloc预分配 在ext4系统中,对于小文件和大文件的空间申请请求,都有不同的分配策略.对用小文件的空间请求,e ...

  4. C#中在比较自定义对象的时候要重写Equals方法

    using System;using System.Collections.Generic;using System.Text; namespace Equal{    using System; c ...

  5. VS2015如何新建C++或者C语言版的lib文件

    当我们不想公开我们的代码的时候,可以把我们的代码封装成静态数据连接库,即lib文件.下面介绍下如何生成lib文件. 以VS2015为例,一种是C++版的lib文件,一种是C语言版的lib文件. 一.按 ...

  6. 四、I/O

    九.什么是I/O: 9.1.在Windows程序中,基础的运行单位为线程,为每一个线程分配一个处理器,可以让系统执行多个操作, 9.2.当线程进行一个I/O操作时,会被挂起,从而影响性能,为了解决这类 ...

  7. JEESZ-kafka消息服务平台实现

    JEESZ的消息服务平台已经抛弃了之前的ActiveMQ,改用高吞吐量比较大的Kafka分布式消息中间件方案:JEESZ-kafka消息平台使用spring+kafka的集成方案,详情如下:1. 使用 ...

  8. Ubuntu安装Cassandra

    Uninstall Cassandra $ sudo su remove cassandra $ apt-get remove cassandra cleaned the cassandra fold ...

  9. Fragment回调接口应用间分享数据

    package com.example.mydemo; import java.util.List; import android.app.Activity; import android.app.A ...

  10. (数字IC)低功耗设计入门(一)

    低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...