使用备份工具xtrabackup进行差异备份详细讲解

2024-02-21 11:52

本文主要是介绍使用备份工具xtrabackup进行差异备份详细讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

差异备份

 

基于第一天进行差异备份

删除之前修改的数据备份

[root@service ~]# rm -rf /data/backup/*
[root@service ~]# ls /data/backup

 完整备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/base/ -uroot -pWyxbuke00. -H localhost -P 3306 --no-server-version-check
[root@service ~]# ls /data/backup/base
backup-my.cnf  binlog.index  ib_buffer_pool  mysql      performance_schema  undo_001  xtrabackup_binlog_info  xtrabackup_info     xtrabackup_tablespaces
binlog.000018  db01          ibdata1         mysql.ibd  sys                 undo_002  xtrabackup_checkpoints  xtrabackup_logfile

 对数据库进行数据变更

mysql> show tables;
+----------------+
| Tables_in_db01 |
+----------------+
| tb_user        |
+----------------+
1 row in set (0.00 sec)mysql> select * from tb_user;
+----+---------+------+
| id | name    | sex  |
+----+---------+------+
|  1 | Tom     | 1    |
|  2 | Trigger | 0    |
|  3 | Dawn    | 1    |
|  4 | sxx     | 0    |
|  5 | wyx     | 1    |
|  6 | asd     | 1    |
+----+---------+------+
6 rows in set (0.00 sec)mysql> insert into tb_user values (7,'lisi',1);
Query OK, 1 row affected (0.00 sec)mysql> select * from tb_user;
+----+---------+------+
| id | name    | sex  |
+----+---------+------+
|  1 | Tom     | 1    |
|  2 | Trigger | 0    |
|  3 | Dawn    | 1    |
|  4 | sxx     | 0    |
|  5 | wyx     | 1    |
|  6 | asd     | 1    |
|  7 | lisi    | 1    |
+----+---------+------+
7 rows in set (0.00 sec)

 对第一次修改的数据进行备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base -uroot -pWyxbuke00. -H localhost -P 3306 --no-server-version-check

 第二次对数据进行修改

mysql> insert into tb_user values (8,'zhangsan',1);
Query OK, 1 row affected (0.00 sec)mysql> select * from tb_user;
+----+----------+------+
| id | name     | sex  |
+----+----------+------+
|  1 | Tom      | 1    |
|  2 | Trigger  | 0    |
|  3 | Dawn     | 1    |
|  4 | sxx      | 0    |
|  5 | wyx      | 1    |
|  6 | asd      | 1    |
|  7 | lisi     | 1    |
|  8 | zhangsan | 1    |
+----+----------+------+
8 rows in set (0.00 sec)

 对第二次修改的数据进行备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/base -uroot -pWyxbuke00. -H localhost -P 3306 --no-server-version-check

 第三次对数据库的数据进行修改

mysql> insert into tb_user values (9,'haha',1);
Query OK, 1 row affected (0.00 sec)mysql> select * from tb_user;
+----+----------+------+
| id | name     | sex  |
+----+----------+------+
|  1 | Tom      | 1    |
|  2 | Trigger  | 0    |
|  3 | Dawn     | 1    |
|  4 | sxx      | 0    |
|  5 | wyx      | 1    |
|  6 | asd      | 1    |
|  7 | lisi     | 1    |
|  8 | zhangsan | 1    |
|  9 | haha     | 1    |
+----+----------+------+
9 rows in set (0.00 sec)

 对第三次修改的数据进行备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup/inc3 --incremental-basedir=/data/backup/base -uroot -pWyxbuke00. -H localhost -P 3306 --no-server-version-check

 应用完整备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/base

 基于第一天和最后一天进行差异备份

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc3

 停止MySQL服务,删除数据库中的所有文件

[root@service ~]# systemctl stop mysqld
[root@service ~]# rm -rf /var/lib/mysql/*
[root@service ~]# ls /var/lib/mysql

 进行恢复并进入数据库查看

[root@service ~]# xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup/base/
[root@service ~]# chown -R mysql.mysql /var/lib/mysql
[root@service ~]# systemctl start mysqld
[root@service ~]# mysql -u root -p
Enter password: 
mysql> use db01;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select * from tb_user;
+----+----------+------+
| id | name     | sex  |
+----+----------+------+
|  1 | Tom      | 1    |
|  2 | Trigger  | 0    |
|  3 | Dawn     | 1    |
|  4 | sxx      | 0    |
|  5 | wyx      | 1    |
|  6 | asd      | 1    |
|  7 | lisi     | 1    |
|  8 | zhangsan | 1    |
|  9 | haha     | 1    |
+----+----------+------+
9 rows in set (0.00 sec)

 

这篇关于使用备份工具xtrabackup进行差异备份详细讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

go rate 原生标准限速库的使用

《gorate原生标准限速库的使用》本文主要介绍了Go标准库golang.org/x/time/rate实现限流,采用令牌桶算法控制请求速率,提供Allow/Reserve/Wait方法,具有一定... 目录介绍安装API介绍rate.NewLimiter:创建限流器limiter.Allow():请求是否

Python使用Turtle实现精确计时工具

《Python使用Turtle实现精确计时工具》这篇文章主要为大家详细介绍了Python如何使用Turtle实现精确计时工具,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录功能特点使用方法程序架构设计代码详解窗口和画笔创建时间和状态显示更新计时器控制逻辑计时器重置功能事件

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

Golang interface{}的具体使用

《Golanginterface{}的具体使用》interface{}是Go中可以表示任意类型的空接口,本文主要介绍了Golanginterface{}的具体使用,具有一定的参考价值,感兴趣的可以了... 目录一、什么是 interface{}?定义形China编程式:二、interface{} 有什么特别的?✅