【MySQL备份】Percona XtraBackup加密备份实战篇

目录

 1.前言

2.准备工作

2.1.环境信息

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

 2.3.授予root用户BACKUP_ADMIN权限

 2.4.生成加密密钥

 2.5.配置加密密钥文件

3.加密备份 

4.优化加密过程

5.解密加密备份

 6.准备加密备份

 7.恢复加密备份

7.1.使用rsync进行恢复

 7.2.使用xtrabackup命令恢复

8.总结


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

 1.前言

继探索了【MySQL备份】Percona XtraBackup压缩备份实战篇后,本文将进一步深入,揭开Percona XtraBackup加密备份的神秘面纱,解锁数据安全的高级实践策略。

在数据保护日益重要的今天,仅仅实现备份是不够的,确保备份数据的私密性和安全性成为新的挑战。Percona XtraBackup,这一MySQL备份领域的佼佼者,不仅以其快速、高效著称,还内置了强大的加密功能,为你的数据库备份穿上坚不可摧的防护盔甲。本篇文章将引领你步入加密备份的实战殿堂,细致剖析如何在Percona XtraBackup中实施加密备份,为敏感信息构建一道坚固的安全防线。

我们不仅会介绍如何启用加密选项,选用合适的加密算法(如AES128、AES192、AES256)来为备份过程加码,还会深入讨论密钥管理的策略与实践,确保加密密钥如同保险箱的钥匙,既强大又安全地守护着你的数据宝藏。同时,考虑到实际操作中的效率与安全性平衡,文中还将涵盖并行加密技术的应用,让你在享受加密带来的安全保障的同时,也能保持备份的高效性。

此外,文章还将指导你如何在需要时,正确且安全地利用之前加密的备份进行数据恢复,确保在任何紧急情况下,都能迅速且无缝地恢复数据,让业务连续性得到最强有力的保障。

总之,本文不仅是对Percona XtraBackup加密备份功能的一次全面梳理,更是一份实战手册,旨在帮助你掌握高级数据保护技能,无论面对何种威胁,都能确保数据的绝对安全。让我们一起深入探究,为你的数据库备份战略增添一份不容忽视的安全力量。

2.准备工作

2.1.环境信息

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

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

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

 2.3.授予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提供了更小的性能影响,因为它不会完全阻止写操作,只是限制了可能引起数据不一致的活动,更适合于高可用性和高性能要求的生产环境。

 2.4.生成加密密钥

openssl rand -base64 24

 2.5.配置加密密钥文件

echo -n "VCGgD7I04P/kBhwSzBUvK4fyT214H9XP" > /data/keyfile

3.加密备份 

xtrabackup --backup --target-dir=/data/backups --encrypt=AES256 \
--encrypt-key="VCGgD7I04P/kBhwSzBUvK4fyT214H9XP"

或者

xtrabackup --backup --target-dir=/data/backups/ --encrypt=AES256 \
--encrypt-key-file=/data/keyfile

 

4.优化加密过程

 加密备份中引入了两个选项,可用于 加快加密过程这些是 xtrabackup --encrypt-threads和 xtrabackup --encrypt-chunk-size.通过使用 xtrabackup --encrypt-threads选项 可以指定多个线程用于并行加密。选项xtrabackup --encrypt-chunk-size可用于指定大小(以 字节)(默认值为 64K)。

5.解密加密备份

xtrabackup --decrypt=AES256 --encrypt-key-file=/data/keyfile \
--target-dir=/data/backups/

 

 6.准备加密备份

xtrabackup --prepare --target-dir=/data/backups/

 7.恢复加密备份

7.1.使用rsync进行恢复

停止MySQL服务进行恢复数据  

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

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

 chown -R mysql.mysql /var/lib/mysql

重启MySQL服务

systemctl start mysqld

 7.2.使用xtrabackup命令恢复

使用xtrabackup命令恢复之前需要删除MySQL数据目录

rm -rf /var/lib/mysql/*

停止MySQL服务

systemctl stop mysqld

xtrabackup有一个xtrabackup --copy-back选项,它执行 将备份恢复到服务器的datadir

xtrabackup --copy-back --target-dir=/data/backups/

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

 chown -R mysql.mysql /var/lib/mysql

 重启MySQL服务

systemctl start mysqld

8.总结

本篇文章和前面的文章其实没有什么区别,都是利用不同的参数实现不同的需求。本篇文章还介绍到了使用xtrabackup命令恢复备份,这里有个缺点就是要清除MySQL的数据目录下面的数据,而之前使用的rsync则不需要这个过程。

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

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

相关文章

深度学习之半监督学习:一文梳理目标检测中的半监督学习策略

什么是半监督目标检测? 传统机器学习根据训练数据集中的标注情况,有着不同的场景,主要包括:监督学习、弱监督学习、弱半监督学习、半监督学习。由于目标检测任务的特殊性,在介绍半监督目标检测方法之前,我…

【驱动篇】龙芯LS2K0300之红外驱动

实验目标 编写HX1838红外接收器驱动,根据接收的波形脉冲解码红外按键键值 模块连接 模块连接:VCC接Pin 2,GND接Pin1,DATA接Pin16 驱动代码 HX1838 GPIO初始化,申请中断,注意:GPIO48默认是给…

2023-2024华为ICT大赛中国区 实践赛网络赛道 全国总决赛 理论部分真题

Part1 数通模块(10题): 1、如图所示,某园区部署了IPv6进行业务测试,该网络中有4台路由器,运行OSPFv3实现网络的互联互通,以下关于该OSPFv3网络产生的LSA的描述,错误的是哪一项?(单选题) A.R1的LSDB中将存在…

Appium adb 获取appActivity

方法一(最简单有效的方法) 通过cmd命令,前提是先打开手机中你要获取包名的APP adb devices -l 获取连接设备详细信息 adb shell dumpsys activity | grep mFocusedActivity 有时获取到的不是真实的Activity 方法二 adb shell monkey -p …

【瑞吉外卖 | day01】项目介绍+后台登录退出功能

文章目录 瑞吉外卖 — day011. 所需知识2. 软件开发整体介绍2.1 软件开发流程2.2 角色分工2.3 软件环境 3. 瑞吉外卖项目介绍3.1 项目介绍3.2 产品原型展示3.3 技术选型3.4 功能架构3.5 角色 4. 开发环境搭建4.1 数据库环境搭建4.2 Maven项目构建 5. 后台系统登录功能5.1 创建需…

会声会影2024破解版下载 让视频编辑更简单、更有趣

在数字时代,视频已经成为我们生活中不可或缺的一部分。无论是记录生活、分享快乐,还是宣传产品、传递信息,视频都扮演着重要的角色。然而,对于很多人来说,视频编辑却是一个让人望而却步的领域。复杂的软件操作、繁琐的…

容器安全:等保合规性的基石

随着云计算和微服务架构的蓬勃发展,容器技术已经成为现代IT基础设施不可或缺的一部分。在网络安全等级保护制度(等保)的框架下,容器安全的要求日益凸显,成为等保合规性的基石。本文将深入探讨容器安全在等保中的重要性…

爽!强化学习+注意力机制,吞吐量提升了10多倍!

通过引入注意力机制,强化学习模型不仅能够更加高效地处理复杂的环境和任务,还能在学习和决策过程中实现更高的精度和适应性。 因此这种结合迅速成为了各大领域的研究热点,而且已经在实际应用中有了显著的性能提升。比如分散式强化学习框架SA…

在嵌入式商用里面哪款RTOS(实时操作系统)比较多人用?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 传统的RTOS和嵌入式Linu…

Qt中使用MySQL数据库详解,好用的模块类封装

本文将详细介绍如何在Qt应用程序中集成MySQL数据库,并封装实现好用的mysql数据库操作类。包括环境准备、连接数据库、执行查询及异常处理等关键步骤,同时包含mysql驱动的编译。分享给有需要的小伙伴,喜欢的可以点击收藏。 目录 环境准备 项…

javaSE期末练习题

文章目录 前言一、程序控制1.顺序结构问题描述解题思路题解 2.选择结构2.1 题1问题描述解题思路题解 2.1 题2问题描述解题思路题解 3.循环结构3.1 阶乘的求取问题描述解题思路题解 3.2 水仙花数问题描述解题思路题解 二、数组三、类与对象1.类与对象1.1圆类问题描述解题思路题解…

从云原生视角看 AI 原生应用架构的实践

本文核心观点: 基于大模型的 AI 原生应用将越来越多,容器和微服务为代表的云原生技术将加速渗透传统业务。API 是 AI 原生应用的一等公民,并引入了更多流量,催生企业新的生命力和想象空间。AI 原生应用对网关的需求超越了传统的路…

使用myCobot和OAK-D OpenCV DepthAI摄像头制作一个可以在眼前始终享受视频的手机支架!

引言 由于YouTube和Netflix的出现,我们开始躺着看手机。然而,长时间用手拿着手机会让人感到疲劳。这次我们制作了一个可以在你眼前保持适当距离并调整位置的自动移动手机支架,让你无需用手拿着手机。请务必试试! 准备工作 这次我们…

电脑文件自动备份:构建坚不可摧的数据防护网

在数字化浪潮的推动下,电脑已成为我们日常生活和工作中不可或缺的一部分,它承载着海量的个人信息、工作文档、学习资料等重要数据。然而,随着数据量的不断膨胀,数据安全问题也日益严峻。硬盘故障、系统崩溃、病毒攻击、人为误操作…

【中项第三版】系统集成项目管理工程师 | 第 2 章 信息技术发展

前言 第2章对应的内容大概率仅考察选择题,通读教程,速战速决。选择题分值预计在2-5分,属于必考的知识点。 2.1 信息技术及其发展 信息技术是在信息科学的基本原理和方法下的关于一切信息的产生、信息的传输、信息的发送、信息的接收等应用技…

2Python的Pandas:读取数据

1.读取Excel文件 1.1.读取数据 import pandas as pd# Excel 文件的 URL 或本地路径 url "https://www.gairuo.com/file/data/dataset/team.xlsx"# 使用 Pandas 的 read_excel 函数读取数据 try:df pd.read_excel(url)print(df.head()) # 打印 DataFrame 的前几行…

k8s公网集群安装(1.23.0)

网上搜到的公网搭建k8s都不太一致, 要么说的太复杂, 要么镜像无法下载, 所以写了一个简洁版,小白也能一次搭建成功 使用的都是centos7,k8s版本为1.23.0 使用二台机器搭建的, 三台也是一样的思路1.所有节点分别设置对应主机名 hostnamectl set-hostname master hostnamectl set…

简述设计模式-代理模式

概述 代理模式:一个类代表另一个类的功能。代理模式通过引入一个代理对象来控制对员对象的访问。 举个例子,就像明星都有经纪公司,商业合作都是直接和经济公司沟通,不会直接和明星沟通。 律师和委托人就是代理关系,…

如何找BMS算法、BMS软件的实习

之前一直忙,好久没有更新了,今天就来写一篇文章来介绍如何找BMS方向的实习,以及需要具备哪些条件,我的实习经历都是在读研阶段找的,读研期间两段的实习经历再加上最高影响因子9.4分的论文,我的秋招可以说是…

C - Popcorn(abs358)

题意&#xff1a;有n个摊子&#xff0c;m个爆米花&#xff0c;想花费最少去的店铺买到所有的口味的爆米花&#xff0c;找到每一列都为‘o’的最少行数。 分析&#xff1a;用dfs寻找最少路径 #include<bits/stdc.h> using namespace std; typedef long long ll; char x;…