MySQL 小技巧:利用 xtrabackup 完全备份,增量备份及还原

案例:利用 xtrabackup 8.0 完全备份,增量备份及还原 MySQL8.0

在面对海量数据时,我们无法做到每天全量备份,因此 只能每周做一次全量备份。

而每天的话则进行增量备份,确保数据安全。

注意点:MySQL 8.0.26 版本对应需要安装 8.0.26 版本的 xtrabackup 软件包

Index of /pub/percona/percona/yum/release/8/RPMS/x86_64/

0) 前置条件 ( 源主机与目标主机都安装好 MySQL 服务 )
[root@centos8 ~] yum install mysql-server -y
[root@centos8 ~] systemctl enable --now mysqld

----
1) 备份过程
1.1) 先做"完全备份"
[root@centos8 ~] yum install percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm -y
[root@centos8 ~] mkdir /backup/
[root@centos8 ~] xtrabackup -uroot -pP@ssw0rd123456 --backup --target-dir=/backup/base --no-server-version-check # 完全备份

# 验证备份目录
[root@centos8 ~] ll /backup

1.2) 第一天: 修改数据
insert teachers values(20,'wang',18,'M');
insert teachers values(21,'mage',18,'M');

1.3) 第一次"增量备份"
# 基于 完全备份 做增量备份
# 基于 /backup/base 做增量备份, 备份在 /backup/inc1 目录
[root@centos8 ~] xtrabackup -uroot -pP@ssw0rd123456 --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base --no-server-version-check    # 增量备份

# 验证备份目录
[root@centos8 ~] ll /backup

1.4) 第二天: 修改数据
insert teachers values(25,'wangj',18,'M');
insert teachers values(26,'wangjun',18,'M');

1.5) 第二次"增量备份"
# 基于 第一次增量备份 继续做增量备份
# 基于 /backup/inc1 做增量备份, 备份在 /backup/inc2 目录
[root@centos8 ~] xtrabackup -uroot -pP@ssw0rd123456 --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1 --no-server-version-check # 增量备份

# 验证备份目录
[root@centos8 ~]# ll /backup
total 12
drwxr-x---. 6 root root 4096 Feb  4 10:48 base        # 全量备份数据库
drwxr-x---. 6 root root 4096 Feb  4 10:50 inc1        # 第一次增量备份
drwxr-x---. 6 root root 4096 Feb  4 10:50 inc2        # 第二次增量备份

1.6) 复制所有备份数据到目标主机 ( 目标主机需要存在 /backup 目录 )
[root@centos8 ~] scp -r /backup/* 目标主机:/backup/
[root@centos8 ~] scp -r /backup/* 192.168.80.150:/backup/
# 备份过程会生成三个备份目录
 /backup/{base,inc1,inc2}

----
2) 还原过程
2.1) "预准备"完全备份 ( 此选项 --apply-log-only 阻止回滚未完成的事务 )
[root@centos8 ~] yum install percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm -y

# 预处理完全备份数据
[root@centos8 ~] xtrabackup --prepare --apply-log-only --target-dir=/backup/base

2.2) 合并第 1 次增量备份到完全备份
[root@centos8 ~] xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1


2.3) 合并第 2 次增量备份到完全备份
// 最后一次还原不需要加选项 --apply-log-only
[root@centos8 ~] xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2

2.4) 复制备份数据到数据库目录
# 注意: 数据库目录必须为空, MySQL 服务不能启动
[root@centos8 ~] systemctl stop mysqld      # MySQL 服务不能启动
[root@centos8 ~] rm -rf /var/lib/mysql/*    # 数据库目录必须为空
[root@centos8 ~] xtrabackup --copy-back --target-dir=/backup/base    # 复制备份数据到数据库目录

2.5) 还原属性
[root@centos8 ~] chown -R mysql:mysql /var/lib/mysql

2.6) 启动服务
[root@centos8 ~] systemctl enable --now mysqld

2.7) 验证数据
[root@centos8 ~] mysql
mysql> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name          | Age | Gender |
+-----+---------------+-----+--------+
|   1 | Song Jiang    |  45 | M      |
|   2 | Zhang Sanfeng |  94 | M      |
|   3 | Miejue Shitai |  77 | F      |
|   4 | Lin Chaoying  |  93 | F      |
|  20 | wang          |  18 | M      |
|  21 | mage          |  18 | M      |
|  25 | wangj         |  18 | M      |
|  26 | wangjun       |  18 | M      |
+-----+---------------+-----+--------+
8 rows in set (0.00 sec)

 

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

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

相关文章

基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

Netty重点——ByteBuf特别篇(十五)

ByteBuf为什么好用 在网络编程中,基本都是基于TCP报文的字节流的操作,所以Java的NIO又新增了ByteBuffer,只不过Java原生的ByteBuffer,非常难操作,也不能扩容缩容,所以Netty又重新封装了自己的Bytebuf&#…

力扣经典题:相交链表

题目分析:两个链表如果相交且不存在环,那么这两个链表从相交节点往后的节点都相同,所以,遍历一个链表,在遍历时不断遍历另一个链表,只要相等就可以返回了 struct ListNode *getIntersectionNode(struct Li…

2024智慧城市新纪元:引领未来,重塑都市生活

随着科技的飞速发展和数字化转型的不断深入,2024年智慧城市领域迎来了全新的发展格局。 这一年,智慧城市的建设更加注重人性化、可持续性和创新性,为城市居民带来了前所未有的便捷与舒适。以下将重点关注智慧城市的几个核心内容,…

LeetCode:14.最长公共前缀

14. 最长公共前缀 - 力扣(LeetCode) 目录 题目: 思路: 代码有限注释: 每日表情包: 题目: 思路: 仅有一种,LeetCode的四种解法,三种都是来水的&#…

单片机学习笔记---串口通信(1)

目录 通信的基本概念 通信的方式 1.按照数据传送的方式,可分为串行通信和并行通信。 1.1串行通信 1.2并行通信 2.按照通信的数据同步方式,又可以分为异步通信和同步通信。 2.1 异步通信 2.2同步通信 3.按照数据的传输方向,又可以分为…

C#(C Sharp)学习笔记_If条件判断语句【五】

前言: 本期学习的是编程语言中的主要语句:if-条件判断语句。在这里我们会学到:if语法,if-else,和if嵌套。话不多说,我们开始吧! 什么是条件判断语句? 条件语句是用来判断给定的条件…

数据库学习案例20240206-ORACLE NEW RAC agent and resource关系汇总。

1 集群架构图 整体集群架构图如下: 1 数据库启动顺序OHASD层面 操作系统进程init.ohasd run启动ohasd.bin init.ohasd run 集群自动启动是否被禁用 crsctl enable has/crsGIHOME所在文件系统是否被正常挂载。管道文件npohasd是否能够被访问, cd /var/t…

Android14音频进阶:MediaPlayerService如何启动AudioTrack 下篇(五十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

因为PIL版本升级 # image image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert(L) image image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.LANCZOS).convert(L)

Vue源码系列讲解——变化侦测篇【下】(Array的变化侦测)

目录 1. 前言 2. 在哪里收集依赖 3. 使Array型数据可观测 3.1 思路分析 3.2 数组方法拦截器 3.3 使用拦截器 4. 再谈依赖收集 4.1 把依赖收集到哪里 4.2 如何收集依赖 4.3 如何通知依赖 5. 深度侦测 6. 数组新增元素的侦测 7. 不足之处 8. 总结 1. 前言 上一篇文…

Unity类银河恶魔城学习记录3-4 EnemyBattleState P50

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Enemy.cs using System.Collections; using System.Collections.Generic; …

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有…

网络基础(三)

网络层与数据链路层 1.网络层2.IP2.1 基本概念2.2 协议头格式2.3 网段划分2.4 特殊的IP地址2.5IP地址的数量限制2.6 私有IP地址和公网IP地址2.7 路由 3.数据链路层4.以太网(MAC帧协议)4.1 认识以太网4.2 以太网帧格式4.3 认识MAC地址4.4 对比理解MAC地址…

【Unity游戏设计】跳一跳Day1

一、创建场景 Assets/Secnes:GameAssets创建游戏资源Prefabs存放预制体,Scripts脚本,Sounds声音,Textures图片资源,Materiais材质资源分类存放意识 二、场景建模 注意:alt鼠标左键切换视角 视角与摄像机视角保持一致:Main CameraGameObjectAlign Vie…

RabbitMQ-4.MQ的可靠性

MQ的可靠性 4.MQ的可靠性4.1.数据持久化4.1.1.交换机持久化4.1.2.队列持久化4.1.3.消息持久化 4.2.LazyQueue4.2.1.控制台配置Lazy模式4.2.2.代码配置Lazy模式4.2.3.更新已有队列为lazy模式 4.MQ的可靠性 消息到达MQ以后,如果MQ不能及时保存,也会导致消…

Asp .Net Core 集成 NLog

简介 NLog是一个基于.NET平台编写的日志记录类库,它可以在应用程序中添加跟踪调试代码,以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点,支持在任何一种.NET语言中输出带有上下文的调试诊断信息…

相机图像质量研究(3)图像质量测试介绍

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

用python编写爬虫,爬取房产信息

题目 报告要求 工程报告链接放在这里 https://download.csdn.net/download/Samature/88816284使用 1.安装jupyter notebook 2.用jupyter notebook打开工程里的ipynb文件,再run all就行 注意事项 可能遇到的bug 暂无,有的话私信我

Kafka 生产调优

Kafka生产调优 文章目录 Kafka生产调优一、Kafka 硬件配置选择场景说明服务器台数选择磁盘选择内存选择CPU选择 二、Kafka Broker调优Broker 核心参数配置服役新节点/退役旧节点增加副本因子调整分区副本存储 三、Kafka 生产者调优生产者如何提高吞吐量数据可靠性数据去重数据乱…