【MySQL备份】Percona XtraBackup全量备份实战篇

目录

1. 前言

2.准备工作

2.1.环境信息

2.2.创建备份目录

2.3.配置/etc/my.cnf文件

2.4.授予root用户BACKUP_ADMIN权限

3.全量备份

4.准备备份 

5.数据恢复 

6.总结


"实战演练:利用Percona XtraBackup执行MySQL全量备份操作详解"

1. 前言

本文将继续上篇【MySQL备份】Percona XtraBackup基础篇中对Percona XtraBackup的探索,深化讨论其全量备份技术及详尽的恢复策略。本章节旨在构建一套完备的备份恢复指南,进一步巩固您的数据库安全防线,确保数据资产的万无一失。

在本篇内容中,我们将细致剖析Percona XtraBackup执行全量备份的高效实践,这一核心功能不仅能够实时捕捉数据库状态的完整映像,还依托其先进的日志处理机制,保证备份数据的绝对一致性和可靠性。您将学习到如何运用简洁明了的命令行指令,安全无碍地将数据库快照存置于指定位置,为数据保护筑起第一道坚固壁垒。

紧接着,文章将引领您步入数据恢复的精密艺术殿堂。从备份到恢复的无缝对接,是检验备份方案成色的真正试金石。我们将逐步拆解恢复流程的每一个关键环节:从安全停机、数据迁移与权限配置,到细腻的预处理步骤,直至数据库服务的顺利重启与健康状况的全面核查。每一步都精心设计,确保在面对不可预见的数据危机时,能够迅速恢复业务运营,维持数据连续性和服务稳定性。

通过本篇的深度解析,您不仅能掌握Percona XtraBackup全量备份的精髓,更能领略其在数据恢复领域的独到之处,为您的数据库管理技能树增添一份坚实保障。无论是对初学者的启蒙,还是对资深DBA的技能进阶,本篇章节均是不可或缺的知识宝典。

2.准备工作

2.1.环境信息

主机IP操作系统Mysql版本XtraBackup版本
172.17.0.2CentOS Stream release 98.0.378.0.35

2.2.创建备份目录

mkdir -p /data/backup

2.3.配置/etc/my.cnf文件

[xtrabackup]
host=localhost
port=3306
user=root
password=123456
socket=/var/lib/mysql/mysql.sock
target_dir=/data/backup

2.4.授予root用户BACKUP_ADMIN权限

grant BACKUP_ADMIN on *.* to 'root'@'%'

LOCK INSTANCE FOR BACKUP 是MySQL 8.0引入的一种新的备份相关SQL语句,主要用于在进行数据库备份时,以一种更为细粒度和高效的方式控制对数据库实例的访问,以保证备份的一致性。这个命令的工作原理及特点如下:

目的:在执行备份操作时,此命令用于获取一个实例级别的锁,该锁允许在备份过程中继续执行DML(数据操作语言,如INSERT、UPDATE、DELETE)操作,同时防止那些可能导致数据快照不一致的DDL(数据定义语言,如CREATE、ALTER、DROP)操作和某些管理操作。这样可以在不影响数据库服务的情况下进行备份,特别适用于需要最小化服务中断的在线备份场景。

权限需求:执行LOCK INSTANCE FOR BACKUP语句需要用户具备BACKUP_ADMIN权限。这是一个专门为了备份相关的高级操作而设计的权限级别。

兼容性:此特性是在MySQL 8.0及以上版本中引入的,早于8.0的MySQL版本并不支持这一语句,因此在使用旧版本时,可能需要依赖其他机制(如FLUSH TABLES WITH READ LOCK)来确保备份的一致性。

解锁:执行备份后,需要使用UNLOCK INSTANCE语句来释放之前由LOCK INSTANCE FOR BACKUP获得的锁,从而恢复正常操作。

与传统备份命令的对比:相比于传统的备份方法,如使用FLUSH TABLES WITH READ LOCK,LOCK INSTANCE FOR BACKUP提供了更小的性能影响,因为它不会完全阻止写操作,只是限制了可能引起数据不一致的活动,更适合于高可用性和高性能要求的生产环境。

3.全量备份

登陆数据库查看现有的的数据,可以看到现在有一个tes1的库

进行全量备份,最后看到 completed OK!代表成功

xtrabackup --backup --target-dir=/data/backup --datadir=/var/lib/mysql --user=root --password=123456 --host=172.17.0.2  --port=3306

在/data/backup目录下可以看到备份的数据

登陆数据库删除tes1库

4.准备备份 

使用Percona XtraBackup进行全量备份后,在某些特定场景下确实可以直接使用备份数据,但这并不意味着不需要准备备份(prepare step)。备份准备是确保数据一致性的一个重要步骤,尤其是在进行数据恢复操作之前。具体是否需要准备备份取决于你的备份目的和后续操作:

  1. 立即恢复: 如果你计划立即在相同或类似的MySQL环境中恢复这个备份,你应该执行备份准备步骤。这一步骤会应用未完成的事务日志(redo log),确保备份数据的一致性,并将数据文件转换成可以直接用于启动MySQL服务的状态。

    xtrabackup --prepare --target-dir=<备份目录>
  2. 备份存档或复制: 如果你只是想创建一个备份副本用于存档或者复制到其他服务器上,理论上可以在不进行准备的情况下直接复制备份目录。但请注意,未经准备的备份在恢复时仍需经过准备步骤才能使用。

  3. 增量备份基础: 如果计划在这个全量备份的基础上执行增量备份,也不需要立即准备这个全量备份。增量备份会记录自上次备份以来的变化,因此全量备份保持原样即可。

总结来说,尽管在某些情况下全量备份后直接存档或作为增量备份基础可以不立即执行准备步骤,但在准备将数据用于恢复或确保数据一致性时,备份准备是必不可少的。最佳实践中,建议在备份流程中包括准备步骤,以确保备份数据随时可用于快速且可靠地恢复。

5.数据恢复 

停止MySQL服务进行恢复数据

systemctl stop mysqld
rsync -avrP /data/backup/ /var/lib/mysql/

恢复数据时,一定要记得更改数据目录下的文件拥有者以及所属组权限,否则mysql无法启动

chown -R mysql:mysql /var/lib/mysql

重启数据库查看数据是否恢复,可以看到之前被删除的tes1数据库已经成功恢复

6.总结

需要注意的是,在执行恢复之前需要关闭MySQL服务器。您不能恢复到正在运行的mysqld实例的数据目录(导入部分备份时除外)。由于文件的属性将被保留,在大多数情况下,您需要mysql在启动数据库服务器之前将文件的属主和属组更改为mysql.mysql。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/366263.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何给WPS、Word、PPT等办公三件套添加收费字体---方正仿宋GBK

1.先下载需要的字体。 下载字体的网站比较多&#xff0c;基本上都是免费的。随便在网上搜索一个就可以了&#xff0c;下面是下载的链接。 方正仿宋GBK字体免费下载和在线预览-字体天下 ​www.fonts.net.cn/font-31602268591.html 注意&#xff1a;切记不要商用&#xff0c;以免…

记一次EasyExcel的错误使用导致的频繁FullGC

记一次EasyExcel的错误使用导致的频繁FullGC 一、背景描述二、场景复现三、原因分析四、解决方案五、思考复盘 一、背景描述 繁忙的校招结束了&#xff0c;美好的大学四年也结束了&#xff0c;作者也有10个月没有更新了。拿到心仪的offer之后也开始了苦B的打工生活。 最近接到…

.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作

一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 &#xff08;1&#xff09;判断bucket是否存在 &#xff08;2&#xff09;新建bucket &#xff08…

《解答元器件的排列方式》

之前刚接触电子的时候&#xff0c;心里有个疑惑&#xff0c;为什么线路板上的电子元器件是纵横交错的排列方式&#xff0c;为什么不能是像表格一样&#xff0c;一行一列&#xff0c;整整齐齐的排列&#xff1f;为什么这个芯片必须要放在线路板的中心位置呢&#xff1f;相信不少…

【面试系列】产品经理高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

深入理解 XML 和 HTML 之间的区别

在现代网络技术的世界中&#xff0c;XML&#xff08;可扩展标记语言&#xff09;和 HTML&#xff08;超文本标记语言&#xff09; 是两个非常重要的技术。尽管它们都使用标签和属性的格式来描述数据&#xff0c;但它们在形式和用途上有显著的区别。 概述 什么是 XML&#xff…

[数据集][目标检测]睡岗检测数据集VOC+YOLO格式3290张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3316 标注数量(xml文件个数)&#xff1a;3316 标注数量(txt文件个数)&#xff1a;3316 标注…

[图解]SysML和EA建模住宅安全系统-05-参数图

1 00:00:01,140 --> 00:00:03,060 这是实数没错&#xff0c;这是分钟 2 00:00:03,750 --> 00:00:07,490 但是你在这里选&#xff0c;选不了的 3 00:00:07,500 --> 00:00:09,930 因为它这里不能够有那个 4 00:00:11,990 --> 00:00:13,850 但是我们前面这里 5 00…

Linux下编程之内存检查

前言 我们在进行编程时&#xff0c;有时不免会无意中写出一些容易导致内存问题&#xff08;可能一时表象上正常&#xff09;的代码&#xff0c;导致的后果肯定是不好的&#xff0c;就像一颗颗“哑弹”&#xff0c;令人心慌。网上推荐的辅助工具很多&#xff0c;此篇文章…

爬虫逆向实战(42)-某巢登陆(AES、MD5、RSA、滑块验证码)

一、数据接口分析 主页地址&#xff1a;某巢 1、抓包 通过抓包可以发现在登录时&#xff0c;网站首先请求captcha/querySlideImage/来获取滑块验证码的图片&#xff0c;然后请求captcha/checkCode/接口来验证滑块验证码。滑块验证码校验成功后&#xff0c;请求noshiro/getPu…

每天五分钟深度学习:解决for循环效率慢的关键在于向量化

本文重点 上一节课程中,我们学习了多样本的线性回归模型,但是我们的伪代码实现中使用了大量的for循环,这样代码的问题是效率很低。为了克服这一瓶颈,向量化技术应运而生,成为提升程序执行效率、加速数据处理速度的重要手段。 向量化技术概述 向量化(Vectorization)是…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务1:运行环境说明

任务描述 项目的运行环境是基于Hadoop的全分布式模式集群。 任务的主要内容是规划集群节点及网络使用&#xff0c;准备初始环境&#xff0c;关闭防火墙和Selinux。 任务指导 1. 基于Hadoop的全分布式模式集群&#xff0c;如下图所示&#xff1b; 2. 硬软件环境&#xff1a;…

液压件工厂的MES解决方案:智能生产,高效未来

一、引言 虽然我国液压件行业发展迅速&#xff0c;但是大多数液压件生产企业规模小、自主创新能力不足&#xff0c;大部分液压产品处于价值链中低端。且由于技术、工艺、设备及管理等多方面的限制&#xff0c;高端液压件产品研发生产水平不足&#xff0c;无法形成有效的供给&a…

Fluent在Linux环境导入文本文件报错解决

问题描述 同样的文本文件&#xff08;如Profile文件、Chemkin反应机理文件等&#xff09;&#xff0c;Fluent在Windows环境中可正常读取和运算&#xff0c;但是在Linux环境中导入会出错。 Linux中&#xff0c;Fluent读取Chemkin文件报错 问题原因 可能原因之一&#xff1a;换…

生产环境 CentOS 7 k8s v1.28.0离线部署

背景描述&#xff1a;CentOS 7 Kubernetes 离线部署 随着云计算和微服务架构的普及&#xff0c;Kubernetes&#xff08;K8s&#xff09;已经成为容器编排的标准工具。它能够自动化应用的部署、扩展和管理&#xff0c;使得开发和运维的工作更加高效和可靠。然而&#xff0c;在一…

全自动封箱机:如何助力企业实现智能化升级

在飞速发展的工业自动化时代&#xff0c;全自动封箱机以其高效、精准、稳定的特点&#xff0c;成为了生产线上的不可或缺的一员。它不仅大大地提高了生产效率&#xff0c;降低了人工成本&#xff0c;更在产品质量控制、安全性等方面发挥了重要作用。星派将深入探讨全自动封箱机…

SAP PP学习笔记24 - 生产订单(制造指图)的创建

上面两章讲了生产订单的元素。 SAP PP学习笔记22 - 生产订单&#xff08;制造指图&#xff09;的元素1-CSDN博客 SAP PP学习笔记23 - 生产订单&#xff08;制造指图&#xff09;的元素2 - 决济规则(结算规则)-CSDN博客 这一章讲生产订单的创建。比如 - 生产订单的流程&#…

JavaScript中的事件代理(Event Delegation)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介JavaScript中的事件代理&#xff08;Event Delegation&#xff09;1. 引言2. 事件代理的概念2.1 概述2.2 事件冒泡 3. 事件代理的工作原理3.1 绑定事件处理程序3.2 检查事件目标 4. 事件代理的实现4.1 基本示例4.2 动态添加元素 5.…

易编橙·终身成长社群:帮助编程小伙伴少走弯路

&#x1f34a; 目录 &#x1f34a; 自我介绍 &#x1f34a; 如何加入&#xff1f; &#x1f34a; 【擅长的技术】 &#x1f34a; 星主介绍 &#x1f34a; 星球天团 &#x1f34a; 易编橙终身成长社群介绍及权益&#xff5e; &#x1f34a; 受众群体 &#x1f34a; 如何…

Chapter 8 Feedback

Chapter 8 Feedback 这一章我们介绍feedback 反馈运放的原理. 负反馈是模拟电路强有力的工具. 8.1 General Considerations 反馈系统如下图所示 Aolamp open-loop gain即开环增益. Aolxo/xi β \beta β 是 feedback factor, 注意方向. β x f x o \beta\frac{x_{f}}{x_{o…