【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则不需要这个过程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

crewAI实践过程中,memory规避openai的使用方法以及(windows下xinferece框架使用踩过的坑)

问题: 在使用crewAI开发项目的过程中,memory开启后报错:openai key is fake 经代码核查,其默认使用了openai的embedding模型。 解决方法 经查阅资料,可以参考其本地部署llm的方法。 本地部署模型可以使用xinference…

人工智能导论速成笔记

文章目录 前言考试题型第一章、人工智能导引 (10分 )课后习题第二章、Python基础 (10分 )*文件读写NumPy的使用Python绘图基础第三章、机器学习初步(15分 )逻辑回归分类(Logistic Regression)*,3.5线性回归预测(Linear Regression)*,3.6 、3.7、 3.8聚类 3.9第四章、自然语言…

【信息系统项目管理师】常见图表

作文里面的画图题用语言描述画图过程 合同 采购综合评分标准 责任分配矩阵 成本预算表 成本估算 成本管理计划 活动清单 活动属性 变更日志 问题日志 项目章程 自己再添加更多内容 甘特图 甘特图包含以下三个含义: 1、以图形或表格的形式显示活动; 2、…

uniapp封装虚拟列表滚动组件

uniapp封装虚拟列表滚动组件 这里用到一个列表&#xff0c;然后数据可能有很多很多…&#xff0c;一次性全部渲染到dom上会卡顿&#xff0c;很废性能&#xff0c;于是用了这个虚拟列表就变丝滑很多很多。 组件mosoweInventedList 代码&#xff1a; <!-- 虚拟滚动列表组件&a…

常见VPS主机术语有哪些?VPS术语解析

常见VPS主机术语有哪些&#xff1f;本期为大家解析一下我们常见到的听到的VPS专业术语&#xff0c;帮助大家更轻松的了解VPS主机相关知识。 常见VPS主机术语 Apache – 世界上最流行的 Web 服务器软件。 CentOS – 旨在提供基于 Red Hat Enterprise Linux 的企业级操作系统的…

常微分方程算法之编程示例七-两点混合边值问题(打靶法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用打靶法求解两点混合边值问题,打靶法的原理及推导思路请参考: 常微分方程算法之“两点边值问题”求解-CSDN博客https://blog.csdn.net/L_peanut/article/details/137449287 研究问题为

学习笔记(linux高级编程)9

void pthread_cleanup_push(void (*routine)(void *)&#xff0c; void *arg); 功能&#xff1a;注册一个线程清理函数 参数&#xff0c;routine&#xff0c;线程清理函数的入口 arg&#xff0c;清理函数的参数。 返回值&#xff0c;无 void pthread_cleanup_pop(int execute)…

Node.js学习(一)

Node.js安装与入门案例&#xff1a; 需求&#xff1a;点击按钮&#xff0c;请求本地目录指定文件的内容&#xff0c;并显示在页面上 刚入门肯定想着直接写相对路径请求指定路径数据就行了&#xff0c;可是会发现不行。 网页运行在浏览器端&#xff0c;通常后续要发布&#xf…

大模型应用开发实战基础

大模型应用开发实战基础 1. 背景 大模型如日中天&#xff0c;各行各业都受它影响&#xff0c;但是作为程序员&#xff0c;除了让它翻译代码不知道用它干什么&#xff0c;就像是拿着锤子的木匠&#xff0c;找不到钉子在哪。一边听着别人说2024是AI元年&#xff0c;一边又不知所…

数组-二分查找

二分查找 leetcode704 /*** param {number[]} nums* param {number} target* return {number}*/ var search function(nums, target) {let left 0, right nums.length - 1;while (left < right) {const mid Math.floor((right - left) / 2) left;const num nums[mid]…

【antd + vue】表格行合并,同时使用插槽

一、需求说明 表格中&#xff0c;如果一个学校有多个考试科目&#xff0c;则分行展示&#xff0c;其余列&#xff0c;则合并为一行展示&#xff0c;如图所示 二、需求分析 1、表格行合并 相当于有4行&#xff0c;其中1、2行是同一个学校包含不同考试科目及对应人次的数据&am…

生成式AI赋能金融信贷:减少信用评分偏差

信用评分在确定谁获得信贷以及以何种条件获得信贷方面发挥着关键作用。然而&#xff0c;尽管这一点很重要&#xff0c;但传统的信用评分系统长期以来一直受到一系列关键问题的困扰——从偏见和歧视&#xff0c;到有限的数据考虑和可扩展性挑战。例如&#xff0c;一项针对美国贷…

1:25万基础电子地图(西藏版)

我们为你分享过四川版、云南版、江西版、贵州版、重庆版和青海版的1比25万基础电子地图&#xff0c;现在再为你分享西藏版的电子地图。 如果你需要西藏版的1比25万基础电子地图&#xff0c;你可以在文末查看该数据的领取方法。 基础电子地图西藏版 西藏版1:25万基础电子地图…

Xilinx FPGA:vivado利用单端RAM/串口传输数据实现自定义私有协议

一、项目要求 实现自定义私有协议&#xff0c;如&#xff1a;pc端产生数据&#xff1a;02 56 38 &#xff0c;“02”代表要发送数据的个数&#xff0c;“56”“38”需要写进RAM中。当按键信号到来时&#xff0c;将“56”“38”读出返回给PC端。 二、信号流向图 三、状态…

FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟

原文链接&#xff1a;FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607618&idx2&sn5132fb8bfcbd02c2be308f6c6304c6d2&chksmfa8264a5cdf5edb3226d1b0597bb6c39f867601b961b…

[开源软件] 支持链接汇总

“Common rules: 1- If the repo is on github, the support/bug link is also on the github with issues”" label; 2- Could ask questions by email list;" 3rd party software support link Note gcc https://gcc.gnu.org openssh https://bugzilla.mindrot.o…

Web3 ETF 的软件开发框架

Web3 ETF 的软件开发框架主要包含以下几个方面&#xff0c;需要说明的是&#xff0c;Web3 ETF 仍处于早期发展阶段&#xff0c;相关技术和标准尚未成熟。在开发 Web3 ETF 时&#xff0c;需要谨慎评估风险&#xff0c;并做好安全防范措施。北京木奇移动技术有限公司&#xff0c;…

解决卡顿发热,超帧技术焕发中重载游戏动力

近几年&#xff0c;中国手游市场规模不断扩大&#xff0c;开发者通过在画面、玩法等方面的持续创新和打磨&#xff0c;推出更加精品化的产品。然而愈发精美的画质和复杂的玩法&#xff0c;也给硬件带来超高的负载&#xff0c;导致玩家在游戏过程中&#xff0c;频繁出现掉帧卡顿…

C++基础知识-编译相关

记录C语言相关的基础知识 1 C源码到可执行文件的四个阶段 预处理(.i)、编译(.s)、汇编(.obj)、链接。 1.1 预处理 预处理阶段&#xff0c;主要完成宏替换、文件展开、注释删除、条件编译展开、添加行号和文件名标识&#xff0c;输出.i/.ii预处理文件。 宏替换&#xff0c;…

【AIGC评测体系】大模型评测指标集

大模型评测指标集 &#xff08;☆&#xff09;SuperCLUE&#xff08;1&#xff09;SuperCLUE-V&#xff08;中文原生多模态理解测评基准&#xff09;&#xff08;2&#xff09;SuperCLUE-Auto&#xff08;汽车大模型测评基准&#xff09;&#xff08;3&#xff09;AIGVBench-T2…