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 /backup1.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 /backup1.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/base2.2) 合并第 1 次增量备份到完全备份
[root@centos8 ~] xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc12.3) 合并第 2 次增量备份到完全备份
// 最后一次还原不需要加选项 --apply-log-only
[root@centos8 ~] xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc22.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/mysql2.6) 启动服务
[root@centos8 ~] systemctl enable --now mysqld2.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)

 

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

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

相关文章

三层交换组网实验(华为)

思科设备参考:三层交换组网实验(思科) 一,技术简介 三层交换技术的出现,解决子网必须依赖路由器进行管理的问题,解决传统路由器低速、复杂所造成的网络瓶颈问题。一个具有三层交换功能的设备可简单理解为…

1-3 动手学深度学习v2-线性回归的从零开始实现-笔记

手动创建训练数据集 根据带有噪声的线性模型构造一个人造数据集。我们使用线性模型参数 w [ 2 , − 3.4 ] T \pmb{w} [2,-3.4]^{T} w[2,−3.4]T、 b 4.2 b 4.2 b4.2和噪声项 ϵ \epsilon ϵ生成数据集及其标签: y X w b ϵ \pmb{y} \pmb{Xw}b\epsilon yXw…

一起玩儿Proteus仿真(C51)——03. 直流电机的启停、加减速和正反转仿真(L298)(一)

摘要:本文介绍直流电机的驱动原理图和PWM信号的输出方法 今天来用Proteus和C51做一个直流电机驱动程序的仿真实验。在这个实验中,通过按键可以控制电动机的启动、停止、加速、减速、正转和反转。在这里,主要使用到的器件除了C51最小系统之外&…

机器学习超参数优化算法(贝叶斯优化)

文章目录 贝叶斯优化算法原理贝叶斯优化的实现(三种方法均有代码实现)基于Bayes_opt实现GP优化基于HyperOpt实现TPE优化基于Optuna实现多种贝叶斯优化 贝叶斯优化算法原理 在贝叶斯优化的数学过程当中,我们主要执行以下几个步骤: …

【2024最新ChatGPT干货总结 升级GPT-4.0教程】含实用prompt技巧

2024最新ChatGPT干货总结 & 升级GPT-4.0教程!含实用prompt技巧 前言GPT-4.0 与 3.5的差距?一些实例展示个人感受 一些实用的prompts用法?prompt5步法,分为下面5个步骤:关于5步法的说明小结 如何快速升级地表最强GP…

Go语言Gin框架安全加固:全面解析SQL注入、XSS与CSRF的解决方案

前言 在使用 Gin 框架处理前端请求数据时,必须关注安全性问题,以防范常见的攻击。本文将探讨 Gin 框架中常见的安全问题,并提供相应的处理方法,以确保应用程序的稳健性和安全性。 处理前端请求数据时,确保应用程序的…

指针的深入理解(四)

这节主要讨论sizeof和strlen的区别,以及一些理解题。 sizeof 求的是对象的大小,深入理解一点就是:这个对象,他一定有一块对应的内存空间。求的就是这一块内存空间。 strlen 只能用来求字符串, 求取的是字符串的长度。…

使用C#读取PDF中所有文本内容

先安装如下包 using iTextSharp.text.pdf; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text;namespace ReadPdfText {class Program{static void Main(string[] args){string path "0017_审判流程管理信息表2…

c#string方法对比

字符串的截取匹配操作在开发中非常常见,比如下面这个示例:我要匹配查找出来字符串数组中以“abc”开头的字符串并打印,我下面分别用了两种方式实现,代码如下: using System; namespace ConsoleApp23{ class Progra…

HCIA--DHCP动态分配ip地址实验

要求: 1. pc1,pc2不能获取 250-254的地址 2. pc3固定获取172.16.1.3/24 pc4固定获取172.16.1.6/24 1. 在AR1上配接口ip、划分网段,创建地址池,开启dhcp: [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 2…

Vue2的双向数据绑定原理是什么

Vue2的双向数据绑定原理是什么 作为一名前端开发者,在日常的开发过程中,我们经常会用到Vue.js这个流行的前端框架。Vue.js以其简洁易用的语法和强大的性能优化功能,成为许多开发者的首选。而Vue.js最核心的特性之一就是双向数据绑定。那么&a…

L1-023 输出GPLT-java

输入样例: pcTclnGloRgLrtLhgljkLhGFauPewSKgt输出样例: GPLTGPLTGLTGLGLL 思路 设置一个GPLT的计数器 然后遍历的时候每次对计数器的个数减一 import java.io.*;public class Main {public static void main(String[] args) throws IOException {B…