MySQL备份利器-xtrabackup的介绍和原理(附脑图)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 标签(linux): mysql-xtrabackup笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流xtrabackup是Percona公司针对mysql数据库开发的一款开源免费的物理备份(热备)工具可针对InnoDB和XtraDB等事务引擎的数据库实现...

标签(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用。。
img_5d7965c34e6bc632d3e91a4b4e68a78f.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
78 4
|
2月前
|
存储 关系型数据库 MySQL
MySQL主从复制原理和使用
本文介绍了MySQL主从复制的基本概念、原理及其实现方法,详细讲解了一主两从的架构设计,以及三种常见的复制模式(全同步、异步、半同步)的特点与适用场景。此外,文章还提供了Spring Boot环境下配置主从复制的具体代码示例,包括数据源配置、上下文切换、路由实现及切面编程等内容,帮助读者理解如何在实际项目中实现数据库的读写分离。
MySQL主从复制原理和使用
|
16天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
38 3
|
16天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
29 3
|
2月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
59 5
Mysql(3)—数据库相关概念及工作原理
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1646 14
|
2月前
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
Mysql中搭建主从复制原理和配置
|
2月前
|
SQL 关系型数据库 MySQL
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
尼恩,一位40岁的资深架构师,通过其丰富的经验和深厚的技術功底,为众多读者提供了宝贵的面试指导和技术分享。在他的读者交流群中,许多小伙伴获得了来自一线互联网企业的面试机会,并成功应对了诸如事务ACID特性实现、MVCC等相关面试题。尼恩特别整理了这些常见面试题的系统化解答,形成了《MVCC 学习圣经:一次穿透MYSQL MVCC》PDF文档,旨在帮助大家在面试中展示出扎实的技术功底,提高面试成功率。此外,他还编写了《尼恩Java面试宝典》等资料,涵盖了大量面试题和答案,帮助读者全面提升技术面试的表现。这些资料不仅内容详实,而且持续更新,是求职者备战技术面试的宝贵资源。
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
|
2月前
|
安全 关系型数据库 MySQL
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
58 3
|
2月前
|
存储 关系型数据库 MySQL
MySQL如何备份?
【10月更文挑战第2天】MySQL如何备份?
109 3

热门文章

最新文章

下一篇
无影云桌面