mysql的xtrbackup工具安装,以及实现全量备份,差异备份,增量备份和恢复_percona-xtrabackup安装-程序员宅基地

技术标签: mysql  数据库  

Percona XtraBackup

是一款开源免费的 MySQL 热备份软件,使用Percona XtraBackup,您可以获得以下好处:
1.快速可靠地完成备份
2.备份期间不间断的事务处理
3.节省磁盘空间和网络带宽
4.自动备份验证
5.更快的恢复时间,更长的正常运行时间

Percona XtraBackup 支持 InnoDB、XtraDB 和 HailDB 存储引擎的非阻塞备份。此外 Percona XtraBackup 可以通过在备份结束时短暂暂停写入来备份以下存储引擎:MyISAM、 Merge和Archive,包括分区表、触发器和数据库选项。

Percona XtraBackup是一个开源的 MYSQL 热备份实用程序,它可以在不阻塞用户查询的情况下启用 MySQL 备份

Percona XtraBackup 2.4 可以备份 MySQL 5.5、5.6 和 5.7 ,但不支持备份 MySQL 8.0,如果需要备份 MYSQL8.0 就需要安装 Percona XtraBackup 8.0 以上版本。需要注意的是 Percona XtraBackup 2.4 不支持 MyRocks 或 TokuDB 存储引擎

官网下载地址:
https://www.percona.com/downloads
找到对应的下载包根据自己的系统下载就行,我这边是centos7的系统,所以下载centos7的包
在这里插入图片描述
直接用rpm安装就行

rpm -ivh percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
xtrabackup --version				查看版本
[root@web71062 ~]# rpm -ivh percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
warning: percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
        libaio.so.1()(64bit) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64
        libaio.so.1(LIBAIO_0.1)(64bit) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64
        libaio.so.1(LIBAIO_0.4)(64bit) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64
        libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64
        perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64
        perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.26-1.el7.x86_64

这个警告和错误是由于缺少一些依赖项导致的。根据错误信息,缺少的依赖项包括:
libaio.so.1()(64bit)
libaio.so.1(LIBAIO_0.1)(64bit)
libaio.so.1(LIBAIO_0.4)(64bit)
libev.so.4()(64bit)
perl(DBD::mysql)
perl(Digest::MD5)
你需要安装这些依赖项才能成功安装 percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm。你可以使用以下命令来安装这些依赖项:

sudo yum install libaio libev perl-DBD-MySQL perl-Digest-MD5

全量备份很好理解,就是把数据全部备份下来,主要的就是差异备份跟增量备份。
增量备份:
增量备份是基于上一次备份(可以是完整备份或增量备份)的增量更改进行的备份。
增量备份只备份自上一次备份以来发生的更改数据。
在恢复时,需要先恢复最近的完整备份,然后逐个应用增量备份,直到恢复到所需的时间点。
增量备份需要更多的时间和存储空间来进行恢复,因为需要逐个应用增量备份。
差异备份:
差异备份是基于上一次完整备份的差异数据进行的备份。
差异备份只备份自上一次完整备份以来发生的更改数据。
在恢复时,只需要恢复最近的完整备份和最后一个差异备份即可。
差异备份相对于增量备份来说,恢复速度更快,因为只需要应用最后一个差异备份。
总结:
增量备份备份的是自上一次备份以来的所有更改,而差异备份备份的是自上一次完整备份以来的差异数据。
增量备份需要更多的时间和存储空间来进行恢复,而差异备份恢复速度更快。
增量备份需要逐个应用增量备份,而差异备份只需要应用最后一个差异备份。
选择增量备份还是差异备份取决于您的需求和环境。如果您需要频繁备份,并且对恢复速度要求不高,可以选择增量备份。如果您需要快速恢复,并且备份频率较低,可以选择差异备份。
知道了原理那我们加下来讲一下差异备份跟增量备份怎么实现
前提:首先进行一次增量备份,线上环境可以在周日或者周做一次全量备份

全量备份
/usr/bin/innobackupex --defaults-file=/etc/my.cnf --no-timestamp  -uroot -p************** --parallel=4 --use-memory=1024M  /opt/full_backup
/usr/bin/innobackupex --defaults-file=/etc/my.cnf --no-timestamp  -uroot -p************** --apply-log  /opt/full_backup
这两条都需要执行
--defaults-file=/etc/my.cnf:指定 MySQL 配置文件的路径。
--no-timestamp:不在备份目录中添加时间戳。
-uroot:指定 MySQL 用户名为 root。
-p:指定 MySQL 密码。
--parallel=4:指定并行备份的线程数为 4。
--use-memory=1024M:指定备份过程中使用的内存大小为 1024M。
--apply-log:应用日志到备份中。
/opt/full_backup:指定备份的目标路径。
增量备份
/usr/bin/innobackupex --defaults-file=/etc/my.cnf -uroot -p***********  --incremental  /opt/inc_backup/ --incremental-basedir=/opt/full_backup/
/usr/bin/innobackupex --defaults-file=/etc/my.cnf -uroot -p***********   --incremental  /opt/inc_backup/ --incremental-basedir=/opt/inc_backup/2023-11-02_14-43-52
/usr/bin/innobackupex --defaults-file=/etc/my.cnf -uroot -p***********   --incremental  /opt/inc_backup/ --incremental-basedir=/opt/inc_backup/2023-11-02_15-00-24
/usr/bin/innobackupex --defaults-file=/etc/my.cnf -uroot -p***********   --incremental  /opt/inc_backup/ --incremental-basedir=/opt/inc_backup/2023-11-02_15-14-13
--incremental:指定进行增量备份。
--incremental-basedir=/opt/full_backup/:指定增量备份的基准目录,即全量备份的路径。

下面是三次差异备份的的命令

差异备份
/usr/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=*********** --incremental /opt/inc_backup --incremental-basedir=/opt/full_backup
/usr/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=********** --incremental /opt/inc_backup --incremental-basedir=/opt/full_backup
/usr/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=********** --incremental /opt/inc_backup --incremental-basedir=/opt/full_backup

在这里插入图片描述
可以发现第一次进行差异备份跟增量备份的命令是一样的,结果也是一样的
但是,第二次开始就有了区别,增量备份第三次指定的基准目录是上一次增量备份的目录–incremental-basedir=/opt/inc_backup/2023-11-02_14-43-52,而不是最开始全量备份的目录/opt/full_backup
而差异备份每次指定的基准目录都是最开始的全量备份目录–incremental-basedir=/opt/full_backup

恢复

恢复得前提得先把数据库停掉,把数据目录清空,但是我不想停,所以我准备启动一个新的mysql实例配置文件是my38142.cnf 同事里面的datadir指定了新的数据目录datadir=/opt/mysqldata_bak,新的数据目录是空的就可以

/usr/bin/innobackupex --defaults-file=/etc/my38142.cnf -uroot -p********** --apply-log --redo-only /opt/full_backup/
合并数据 (合并的次数要增量备份的次数一样 并且合并的顺序也有与增量备份的顺序一致)
/usr/bin/innobackupex --defaults-file=/etc/my38142.cnf -uroot -p********** --apply-log --redo-only /opt/full_backup/ --incremental-dir=/opt/inc_backup/2023-10-12_16-34-30
合并第一次增量/差异备份
/usr/bin/innobackupex --defaults-file=/etc/my38142.cnf -uroot -p*********** --apply-log --redo-only /opt/full_backup/ --incremental-dir=/opt/inc_backup/2023-10-12_16-53-10
合并第二次增量/差异备份
/usr/bin/innobackupex --defaults-file=/etc/my38142.cnf -uroot -p*********** --apply-log --redo-only /opt/full_backup/ --incremental-dir=/opt/inc_backup/2023-11-02_14-43-52
合并第三次增量/差异备份
/usr/bin/innobackupex --defaults-file=/etc/my38142.cnf -uroot -p**********  --copy-back  /opt/full_backup/
恢复数据(把合并后的数据拷贝到数据库目录下)

这里需要注意的一点,合并的增量备份跟差异备份语句格式是一样的,指定的目录不一样而已,不是说第一次合并增量,第二次合并差异
启动实例

chown -R mysql:mysql mysqldata_bak
一定要给目录mysql权限
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my38142.cnf &

这样恢复的目录就起来了

但是有一点非常重要就是,合并的次数要增量备份的次数一样 并且合并的顺序也有与增量备份的顺序一致。举个例子我们先合并得第一次的差异备份,然后合并的第三次的差异备份,所以第二次的增量备份就恢复不了了。解决办法就是在合并第一次增量备份的时候就把第一次的全量备份先拷贝一份,养成好习惯,以防研发找恢复之前的备份导致不能用。

cp  -Lr  /opt/full_backup  /opt/full_backup_1
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_57052445/article/details/134203480

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文