mysqldump备份原理

备份的基本流程如下:

1.调用FTWRL(flush tables with read lock),全局禁止读写

2.开启快照读,获取此时的快照(仅对innodb表起作用)

3.备份非innodb表数据(*.frm,*.myi,*.myd等)

4.非innodb表备份完毕后,释放FTWRL锁

5.逐一备份innodb表数据

6.备份完成。

Mydumper

Mydumper原理与Mysqldump原理类似,最大的区别是引入了多线程备份,每个备份线程备份一部分表,当然并发粒度可以到行级,达到多线程备份的目的。

如何保证备份的一致性,其实关键还是在于FTWRL。

对于非innodb表,在释放锁之前,需要将表备份完成。

对于innodb表,需要确保多个线程都能拿到一致性位点,这个动作同样要在持有全局锁期间完成,因为此时数据库没有读写,可以保证位点一致

xtrabackup

innobackupex的基本流程如下:

1.开启redo日志拷贝线程,从最新的检查点开始顺序拷贝redo日志;

2.开启idb文件拷贝线程,拷贝innodb表的数据

3.idb文件拷贝结束,通过"LOCK BINLOG FOR BACKUP"来获取一致性位点;

4.通过LOCK TABLES FOR BACKUP命令来备份非innodb表数据;

5.由于此时没有新事务提交,等待redo日志拷贝完成

6.最新的redo日志拷贝完成后,相当于此时的innodb表和非innodb表数据都是最新的

7.获取binlog位点,此时数据库的状态是一致的。

8.释放锁,备份结束。

LOCK TABLES FOR BACKUP

作用:备份数据

1.禁止非innodb表更新

2.禁止所有表的ddl

优化点:

1.不会被大查询堵塞(关闭表)

2.不会堵塞innodb表的读取和更新,这点非常重要,对于业务表全部是innodb的情况,则备份过程中DML完全不受损

UNLOCK TABLES

LOCK BINLOG FOR BACKUP

作用:获取一致性位点。

1.禁止对位点更新的操作

优化点:

1.允许DDl和更新,直到写binlog为止。

UNLOCK BINLOG

FTWRL(flush tables with read lock)

无论是哪种备份工具,为了获取一致性位点,都强依赖于FTWRL。这个锁杀伤力非常大,因为持有锁的这段时间,整个数据库实质上不能对外提供写服务的。

由于FTWRL需要关闭表,如有大查询,会导致FTWRL等待,进而导致DML堵塞的时间变长。

即使是备库,也有SQL线程在复制来源于主库的更新,上全局锁时,会导致主备库延迟。

FTWRL这把锁持有的时间主要与非innodb表的数据量有关,如果非innodb表数据量很大,备份很慢,那么持有锁的时间就会很长。

即使全部是innodb表,也会因为有mysql库系统表存在,导致会锁一定的时间。

mysqldump+mydumper+xtrabackup备份原理流程的更多相关文章

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

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

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

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

  3. mysql备份工具 :mysqldump mydumper Xtrabackup 原理

    备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...

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

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

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

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

  6. Percona XtraBackup 备份原理

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

  7. xtrabackup备份原理

    Percona XtraBackup工作原理 Percona XtraBackup是基于InnoDB的崩溃恢复功能.复制InnoDB数据文件,导致内部不一致的数据; 但随后它对文件执行崩溃恢复,使它们 ...

  8. MySql在生产环境中是用mysqldump还是xtrabackup备份和恢复数据

    如题,究竟该使用mysqldump还是xtrabackup,要说用,两个都能备份,都支持热备,但是生产环境我们要考虑的是效率,就是不管备份还是恢复,都要快,要稳定. 之前我在维护mysql数据库的时候 ...

  9. XtraBackup 备份原理

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

随机推荐

  1. 文件操作(day15)

    调用函数可以使用被调用函数动态分配的 存储区 calloc函数也可以动态分配一组连续的 存储区 这个函数可以把所有动态分配的存储区 内容设置成0 为了使用这个函数也需要包含stdlib.h头文件 这个 ...

  2. PAT 1065. A+B and C

    Given three integers A, B and C in [-263, 263], you are supposed to tell whether A+B > C. Input S ...

  3. UOJ #219 BZOJ 4650 luogu P1117 [NOI2016]优秀的拆分 (后缀数组、ST表)

    连NOI Day1T1都不会做...看了题解都写不出来还要抄Claris的代码.. 题目链接: (luogu)https://www.luogu.org/problemnew/show/P1117 ( ...

  4. 2018ICPC南京

    可能上一次秦皇岛拿了银,有了偶像包袱? 打的时候感觉状态不是很好. 第一题,让你每次将连续一段区间的石头都拿掉.. 然后让你做个博弈. 橘子一顿分析,认为k+1的倍数都是输. 这时,我们以及默认i+1 ...

  5. 运行npm run watch时报:events.js:182 throw er; // Unhandled 'error' event

    I had this issue i did the following steps and i have no issues anymore: Delete node_modules directo ...

  6. 楼控-西门子-PPM设置及接线教程

    第一部分:现场接线 1. 拨码:朝向数字那一端为0,远离数字那一端为1,PPM的地址设定方法就是将拨码器拨为跟系统架构表一样的数字,比如一个1U32的BACnet编号为77020,那么它的MAC地址就 ...

  7. [bzoj2124]等差子序列_线段树_hash

    等差子序列 bzoj-2124 题目大意:给定一个1~n的排列,问是否存在3个及以上的位置上的数构成连续的等差子序列. 注释:$1\le n\le 10^4$. 想法:这题就相当于是否存在3个数i,j ...

  8. oracle删除日志文件

    oracle删除日志文件 删除日志文件的语法例如以下: alter database drop logfile member logfile_name; 删除日志文件须要注意例如以下几点: 1.该日志 ...

  9. <图形图像,动画,多媒体> 读书笔记 --- 录制与编辑视频

    使用UIImagePickerController 进行录制 #import "ViewController.h" #import <MobileCoreServices/M ...

  10. UVa 10290 - {Sum+=i++} to Reach N

    题目:给你一个数字问将他写成连续的数字的和的形式.有几种写法. 分析:数论. 设拆成的序列个数为k,我们分两种情况讨论: 1.拆成奇数个连续数.那么设中位数是a,则有n = k * a: 2.拆成偶数 ...