xtrabackup热备一致性原理

转载 2016年08月28日 15:51:55

 xtrabackup作为innodb的hotbackup工具,由percona公司开发,因开源,热备份和物理备份而
在mysql中部署广泛,详情的说明可见之前的博客讨论.

  在物理级别热备份主要的一大挑战就是在文件级别数据块不一致.我们知道innodb的单个page大小
由innodb_page_size 来决定,一般为16K.由4个文件系统4K的块组成.

mysql> show global variables like 'innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_page_size | 16384 | 
+------------------+-------+
1 row in set (0.00 sec)

  
   由于是热备份,当备份工具在拷贝innodb page的时候,数据库本身的进程也有可能在写这个page
那么备份工具拷贝出来的page,就有可能是坏的,也称为page 头尾不一致或是page断裂.这也就是为什么
普通的os复制工具不能用来做为数据库物理热备份的工具原因.

    再看来看xtrbackup工具是怎么解决这一问题的.在备份开始的时候,xtrabackup会像普通的拷贝工具一样
去复制所有的innodb page,所以也会有page断裂的问题存在。xtrabackup在备份开始的时候,生成另
一个线程去拷贝当前的innodb的事务日志, 并同时监控innodb的事务日志文件,一旦有生成新的innodb的事务日志,
也会同时写到xtrabckup自己的日志中去.

     在备份结束后,xtrabacup得到的结果是一份有page断裂的数据文件和备份期间所有的innodb的事务日志.这个
时候的情况和mysql实例崩溃的结果是一样的(实例崩溃后数据文件不完整,事务日志完整).xtrabackup还需要一
个过程,称为prepare,这个过程所做的事情和mysql实例崩溃后所做的操作基本一致。利用坏的数据文件和事务
日志进行rollback和forward操作。

      xtrabckup本身链接了innodb相关的库,所在我们在prepare阶段看到innodb的启动和关闭信息,很类似于标
准的mysql实例启动和关闭过程,实质是我们在prepare的时候,xtrabackup在调用innodb相关的代码进行实例
恢复.prepare过后,xtrabackup备份文件就是一个一致性的数据拷贝,可以直接用来启动mysql。

   可以看到xtrabackup通过innodb的事务日志来和数据page,进行实例恢复,然后得到一致性的备份.而对于那些
非innodb的表则无能为力了,因为没有事务日志.所以我们可以看到在xtrackup备份Myisam的表,还是需要只读表
锁来进行锁定,然后再备份数据文件,和普通的拷贝工具无异.

Xtrabackup实现的原理

在Xtrabackup的wiki上简单的介绍了一下实现的原理:首先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷...
  • l106439814
  • l106439814
  • 2016年02月17日 11:19
  • 2164

xtrabackup备份原理及注意事项

物理备份(Xtrabackup)相对于逻辑备份利用查询提取数据中的所有记录,物理备份更直接,拷贝数据库文件和日志来完成备份,因此速度会更快。当然,无论是开源的Mydumper还是官方最新的备份工具(5...
  • lijingkuan
  • lijingkuan
  • 2017年05月29日 19:43
  • 712

mysql之 xtrabackup原理、备份日志分析、备份信息获取

一、 xtrabackup备份恢复工作原理:                                               extrabackup备份简要步骤 InnoDB...
  • zhang123456456
  • zhang123456456
  • 2017年06月02日 13:14
  • 326

xtrabackup 官方原理

在InnoDB内部会维护一个redo日志文件,我们也可以叫做事务日志文件,事务日志文件会存储每一个InnoDB表数据的更改记录。当InnoDB启动时,InnoDB会检查数据文件和事务日志,并执行两个步...
  • kai404
  • kai404
  • 2016年08月10日 10:33
  • 182

xtrabackup原理及实施

转载于:http://www.baidu-ops.com/2013/05/26/xtrabackup/ xtrabackup是基于InnoDB存储引擎灾难恢复的。它复制InnoDB的数据文件...
  • heizistudio
  • heizistudio
  • 2014年04月17日 14:36
  • 2130

使用Percona XtraBackup对MySQL进行在线热备份

XtraBackup 提供了对MySQL数据的热备份功能,支持innodb和myisam引擎。 1 安装 yum install perl yum install perl-Time-HiRe...
  • zzulp
  • zzulp
  • 2014年06月15日 15:07
  • 2889

人工手动冷备与热备

1.1 手工备份和恢复的命令     1)备份和还原都使用OS命令,如linux中的cp     2)恢复用sqlplus命令:recover 1.2手工一致性备份(冷备份)  备份前...
  • zhang123456456
  • zhang123456456
  • 2017年01月06日 21:04
  • 235

xtrabackup原理

转自:http://jingyan.baidu.com/article/75ab0bcbef0a44d6864db23d.html xtrabackup 是 percona 的一个开源项目,可以...
  • u010587433
  • u010587433
  • 2015年08月14日 13:42
  • 236

xtrabackup<一、 原理>

xtrabackup是percona在线备份的开源工具,其优点之一就是备份innodb表的时候不需要任何锁表,对于目前oltp系统来说,提高了系统的可用率。    xtrabackup是如何来防止锁...
  • gua___gua
  • gua___gua
  • 2015年03月22日 22:28
  • 327

MySQL双机热备份的配置及原理

MySQL双机热备份的配置及原理 1.       主题 MySQL双机热备份的配置及原理 2.       摘要 双机热备就是使用MySQL提供的一种主从备份机制实现。其实就是把主数据库(m...
  • yjf840366772
  • yjf840366772
  • 2014年07月31日 18:21
  • 954
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xtrabackup热备一致性原理
举报原因:
原因补充:

(最多只允许输入30个字)