MySQL备份利器-xtrabackup的介绍和原理(附脑图)
标签(linux): mysql-xtrabackup
笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流
xtrabackup是Percona公司针对mysql数据库开发的一款开源免费的物理备份(热备)工具
可针对InnoDB和XtraDB等事务引擎的数据库实现不锁表方式的备份
可针对MyISAM等非事务引擎的数据库实现不锁表方式的备份
一、xtrabackup的七大特点
1.直接拷贝物理文件,备份和恢复数据的速度非常快、安全可靠
2.在备份期间执行的事务不会间断,备份InnoDB数据不影响业务
3.备份期间不增加太多数据库的性能压力
4.支持对备份的数据自动校验
5.支持全量、增量、压缩备份及流备份
6.技持在线迁移表以及快速创建新的从库
7.支持几乎所有版本的MySQL和MariaDB
二、xtrabackup的备份原理及过程
第一步:
记录当前redo日志位置(即对应的LSN号)
第二步:
在后台启动一个进程持续监视redo日志文件的变化
第三步:
同时将变化的信息记录到xtrabackup_logfile中
第四步:
针对所有的innodb数据文件进行备份(复制)
第五步:
备份完成后执行“flush tables with read lock”,对数据库锁表
第六步:
备份(复制)MyISAM等非事务引擎的数据文件
第七步:
待InnoDB、MyISAM数据文件、redo日志备份完毕后,获取binlog二进制日志位置点信息
第八步:
执行unlock tables解锁命令,回复数据库可读写状态
三、innobackupex增量备份(仅对InnoDB引擎有效)
原理
拷贝备份之后的InnoDB中变更的“页”数据
拷贝时以全备中xtrabackup_checkpoints文件对应的LSN号为依据
将大于给定的LSN号的页数据(即增量数据)进行备份
因要比对全备LSN号,第一次增量是基于全备的,后每次增量基于上次增备
备份时发生了什么
第一步:
在全备的xtrabackup_checkpoints logfile中找到并记录最后一个checkoint(last checkpint LSN)
第二步:
从该LSN的位置拷贝InnoDB的redo日志到xtrabackup_logfile
第三步:
开始备份全部的数据文件:ibd
第四步:
待全部数据拷贝结束后,停止拷贝logfile
四、InnoDB日志
1.Redo日志
也称事务日志,是Innodb引擎重要组成部分
记录Innodb引擎中每个数据发生的变化信息
用于保证innodb数据的完整性,及丢数据后的恢复
可有效提升数据库的IO性能
配置参数为
innodb_log_file_size
innodb_log_files_in_group
2.Undo日志
记录事务的逆向逻辑操作或者逆向物理操作对应的数据变化的内容
默认存放在共享表空间里面的(ibdata*文件)
和Redo日志功能不同Undo日志主要用于回滚数据库崩溃前未完整提交的事务数据
确保数据恢复前后一致
3.LSN
全拼log Sequence Number
意为日志序列号
64位的整型数字
用于记录Redo日志时,使用LSN唯一标识一条变化的数据
4.Checkpoint
用来标识数据库崩溃后,应恢复的redo log的起始点
五、xtrabackup脑图
注:纯装X用。。
MySQL备份利器-xtrabackup的介绍和原理(附脑图)的更多相关文章
- mysql备份工具innobackupex,xtrabackup-2.1的原理和安装
mysql备份工具innobackupex,xtrabackup-2.1的原理和安装 http://bbs.2cto.com/read.php?tid=310496 一.Xtrabackup介绍 1. ...
- MySQL备份恢复之Xtrabackup
Preface Today,I'm gonna use the Xtrabackup tool to demonstrate the procedure of backing up MyS ...
- MySQL备份恢复工具Xtrabackup
参考文档https://www.cnblogs.com/youkanyouxiao/p/8335173.html Xtrabackup介绍 Xtrabackup是由percona开源的免费数据库热备 ...
- MySQL备份还原——mysqldump工具介绍
mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump ...
- mysql 备份软件 Xtrabackup 的 xtrabackup_binlog_pos_innodb和xtrabackup_binlog_info 文件区别
今天在操作 innobackupex 的时候,执行 change master to 的时候发现 xtrabackup_binlog_pos_innodb xtrabackup_binlog_i ...
- Mysql备份工具Xtrabackup
Xtrabackup是一个开源的免费的热备工具,在Xtrabackup包中主要有Xtrabackup和innobackupex两个工具.其中Xtrabackup只能备份InnoDB和XtraDB两种引 ...
- MySQL备份之XtraBackup工具使用
数据库的完整备份 [root@vhost1 ~]# innobackupex --defaults-file=/mysqldata/3306/my.cnf --user=root --passw ...
- mydumper linux mysql 备份利器
1 官网 https://launchpad.net/ 2 安装使用参考网站 http://www.cnblogs.com/digdeep/p/4925560.html
- mysql备份工具 :mysqldump mydumper Xtrabackup 原理
备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(R ...
随机推荐
- 一个大四毕业生想对自学Android的大学生说一些话
本人大四,经历了秋招和春招,秋招拿了华为的android offer,春招是拿的java后台开发的offer,一路走来,感慨很多,有一些话想对在自学Android的大学生说.本文只是帮助像我一样的大学 ...
- 5.移植uboot-设置默认环境变量,裁剪,并分区
在上一章,我们使用网卡传输文件,每次启机时,环境变量都要变为默认值,需要重新设置ip,MAC地址才行,由于没有配置mtdparts命令,启动内核也不成功 所以本章主要学习: 1)修改环境变量默认值 2 ...
- JAVA中的 static使用
主要内容: 1.静态变量 2.静态方法 3.静态代码块 静态变量 我们知道,可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员 ...
- TLD网络资源汇总--学习理解之(四)
原文:http://blog.csdn.net/mysniper11/article/details/8726649 引文地址:http://www.cnblogs.com/lxy2017/p/392 ...
- Angular-搜索框及价格上下限
Angular-搜索框及价格上下限 闲来无事,写一个简单的angular的搜索框. 1.要求: 利用 AngularJS 框架实现手机产品搜索功能,题目要求: 1)自行查找素材,按照原有数据格式将手机 ...
- Android刮刮卡自定义控件
网上的都是自己绘制的或者图片,我的需求是可以随意的自定义底部和顶部的布局.所以自己重写一个,原理就是直接继承 View 来实现一个刮层,让这个刮层和图片以及文字不产生任何依赖,再结合 FrameLay ...
- JavaScript中常用的正则表达式日常整理(全)
//校验是否全由数字组成 ? 1 2 3 4 5 6 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) retu ...
- 电视盒子好用又强大的跨屏远程输入法 TVRemoteIME
应用包下载地址: https://github.com/kingthy/TVRemoteIME/raw/master/released/IMEService-release.apk TVRemoteI ...
- JavaSE(十一)之异常处理详解
一.异常概述 在我们日常生活中,有时会出现各种各样的异常,例如:职工小王开车去上班,在正常情况下,小王会准时到达单位.但是天有不测风云,在小王去上班时,可能会遇到一些异常情况,比如小王的车子出了故障, ...
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals)爆零记
昨晚一个瓜皮说今晚有cf,听说是晚间场,我瞅了一眼,娃,VK Cup,上分的好机会,看着比赛时间就有点心酸了,0:35,当时一直在纠结要不要打的问题,当时想着应该不难吧,要不打一下吧,要不还是看看题先 ...