MySQL第三方备份工具Percona XtraBackup

news2024/11/17 5:28:14

实验环境:

CentOS7.9

准备软件:yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm


一、什么是Percona XtraBackup:Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源

二、工作原理

Percona XtraBackup 的工作原理是在启动时记住日志序列号(LSN),然后复制数据文件。

三、使用Percona XtraBackup

1 安装xtrabackup

1.1[root@localhost ~]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

1.2 [root@localhost ~]# yum list | grep percona-xtarbackup

 1.3 [root@localhost ~]# yum -y install percona-xtrabackup-24.x86_64

四、Xtrabackup完全备份+binlog增量备份

Xtrabackup中主要包含两个工具:

xtrabackup:是用于热备innodb,xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;

innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。

常用选项:

--host 指定主机

--user 指定用户名

--password 指定密码

--port 指定端口

--databases 指定数据库

--incremental 创建增量备份

--incremental-basedir 指定包含完全备份的目录

--incremental-dir 指定包含增量备份的目录

--apply-log 对备份进行预处理操作

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

--redo-only 不回滚未提交事务

--copy-back 恢复备份目录

五、完全备份

1.[root@localhost ~]# innobackupex --user=root--password=123 /mysqlbackup/ 语法解释说明:

#--user=root 指定备份用户

#--password=123456 指定备份用户密码

#--host  指定主机

#/mysqlbackup  指定备份目录


1.2查看备份数据



backup-my.cnf #备份用到的配置选项信息文件

xtrabackup_binlog_info #mysql服务器当前正在使用的二进制日志文件和此时二进制日志时间的位置信息文件

xtrabackup_checkpoints #备份的类型、状态和LSN状态信息文件

xtrabackup_logfile #备份的日志文件

1.3 恢复数据

[root@localhost]# innobackupex --apply-log /mysqlbackup/2023-02-14_15-07-11/ #合并数据,使数据文件处于一致性的状态

[root@localhost]# rm -rf /usr/local/mysql/data/* #模拟mysql数据丢失

[root@localhost]# innobackupex --copy-back /mysqlbackup/2023-02-14_15-07-11/ #恢复数据

[root@localhost]# ls /usr/local/mysql/data/ #查看已恢复的数据


修改属主属组

[root@localhost]# chown -R mysql.mysql /usr/local/mysql/data/

总结全库备份与恢复三步曲:

a. innobackupex全量备份,并指定备份目录路径;

b. 在恢复前,需要使用--apply-log参数先进行合并数据文件,确保数据的一致性要求;

c. 恢复时,直接使用--copy-back参数进行恢复,需要注意的是,在my.cnf中要指定数据文件目录的路径。
 

xtrabackup增量备份与恢复
使用innobackupex进行增量备份,每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这正是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。在进行增量备份时,首先要进行一次全量备份,第一次增量备份是基于全备的,之后的增量备份都是基于上一次的增量备份的,以此类推。

要实现第一次增量备份,可以使用下面的命令进行:

2、 增量备份

2.1 [root@localhost]# innobackupex --user=root --password=123 /mysqlbackup/ #完全备份

2.2 创建数据库和表用于增量备份

[root@localhost]# mysql -uroot -p123

mysql> create database abc;

Query OK, 1 row affected (0.00 sec)

mysql> use abc;

Database changed

mysql> create table a(id int,name varchar(10));

Query OK, 0 rows affected (0.01 sec)

mysql> insert into a values(1,'小白');

Query OK, 1 row affected (0.00 sec)

2.3使用innobackupex进行增量备份

[root@localhost ~]# innobackupex --user=root --password=123 --incremental /mysqlbackup/ --incremental-basedir=/mysqlbackup/2023-02-14_15-07-11

2.4 查看备份数据

[root@localhost ~]# ll /mysqlbackup/

总用量 0

drwxr-x--- 6 root root 183 2月 14 15:07 2023-02-14_15-07-11 #完全备份

drwxr-x--- 7 root root 220 2月 14 15:10 2023-02-14_15-10-42 #增量备份

2.5 查看完全备份的xtrabackup_checkpoints

[root@localhost ~]# cat /mysqlbackup/2023-02-14_15-07-11/xtrabackup_checkpoints

backup_type = full-backuped #备份类型为完全备份

from_lsn = 0 #lsn从0开始

to_lsn = 1626067 #lsn到1626067结束

last_lsn = 1626067

compact = 0

recover_binlog_info = 0

2.6 查看增量备份xtrabackup_checkpoints

[root@localhost ~]# cat /mysqlbackup/2023-02-14_15-10-42/xtrabackup_checkpoints

backup_type = incremental #备份类型为增量备份

from_lsn = 1626067 #lsn从1626067 开始

to_lsn = 1630025 #lsn到1630025结束

last_lsn = 1630025

compact = 0

recover_binlog_info = 0

3 增量备份后数据恢复

3.1 模拟mysql故障删除mysql所有数据

[root@localhost ~]# rm -rf /usr/local/mysql/data/*

合并全备数据目录,确保数据的一致性

[root@localhost ~]# innobackupex --apply-log --redo-only /mysqlbackup/2023-02-14_15-07-11/

将增量备份数据合并到全备数据目录当中

[root@localhost ~]# innobackupex --apply-log --redo-only /mysqlbackup/2023-02-14_15-07-11 --incremental-dir=/mysqlbackup/2023-02-14_15-10-42

[root@localhost ~]# cat /mysqlbackup/2023-02-14_15-07-11/xtrabackup_checkpoints

backup_type = log-applied

from_lsn = 0 #lsn从0开始

to_lsn = 1630025 #lsn结束好为最新的lsn

last_lsn = 1630025

compact = 0

recover_binlog_info = 0

恢复数据

[root@localhost ~]# innobackupex --copy-back /mysqlbackup/2023-02-14_15-07-11/

[root@localhost ~]# chown -R mysql.mysql/usr/local/mysql/data #更改数据的属主属组

[root@localhost ~]# mysql -uroot -p -e "show databases;" #查看数据是否恢复

总结:

(1)增量备份需要使用参数--incremental指定需要备份到哪个目录,使用incremental-dir指定全备目录;

(2)进行数据备份时,需要使用参数--apply-log redo-only先合并全备数据目录数据,确保全备数据目录数据的一致性;

(3)再将增量备份数据使用参数--incremental-dir合并到全备数据当中;

(4)最后通过最后的全备数据进行恢复数据,注意,如果有多个增量备份,需要逐一合并到全备数据当中,再进行恢复。

#1. --user=root 指定备份的用户

#2. --password=root指定备份用户的密码

#3. --defaults-file=/etc/my.cnf 指定的备份数据的配置文件

#4. /opt/ 指定备份后的数据保存路径

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Optional.ofNullable的使用

Optional.ofNullable的使用 Optional.ofNullable()方法是Java 8中的一个方法,用于创建一个Optional对象,该对象可能包含一个非空值,也可能为空。如果传递给ofNullable()方法的参数为null,则返回一个空的Optional对象,…

现代雷达车载应用——第2章 汽车雷达系统原理 2.3节 信号模型

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.3 信号模型 雷达的发射机通常发出精心设计和定义明确的信号。然而,接收到的返回信号是多个分量的叠加,包括目标的反射、杂波…

conda环境报错: Solving environment: failed with initial frozen solve.

出现的情况: 解决方法: 参考了许多博客 建议的方法: 创建一个虚拟环境 conda create -n torch_1.3 python3.6 激活虚拟环境 conda activate torch_1.3 conda安装 conda install pytorch1.5.0 如果报错每个包单独安装就可以了&#x…

issue unit

The Issue Unit issue queue用来hold住,已经dispatched,但是还没有执行的uops; 当一条uop的所有的operands已经ready之后,request请求会被拉起来;然后issue select logic将会从request bit 1的slot中,选择…

中通快递查询,中通快递单号查询,并进行多次揽收分析

批量查询中通快递单号的物流信息,并将其中的多次揽收件分析筛选出来。 所需工具: 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,第一次使用的伙伴记得先注册&…

LeetCode 309买卖股票的最佳时机含冷冻期 714买卖股票的最佳时机含手续费 | 代码随想录25期训练营day51

动态规划算法9 LeetCode 309 买卖股票的最佳时机含冷冻期 2023.12.14 题目链接代码随想录讲解[链接] int maxProfit(vector<int>& prices) {//1确定dp二维数组//dp[i][0]表示遍历到第i天时持有股票的当前收入;dp[i][1]表示遍历到第i天时未持有股票的当前收入//dp…

项目管理:如何把项目管理落实到执行细节

一切皆项目&#xff0c;我们的人生也是一个大的项目&#xff0c;在这个大的项目中&#xff0c;拥有多个小的项目&#xff0c;多个阶段&#xff0c;各种活动&#xff0c;小的项目构建成不同大的项目。 对于个人这个项目&#xff0c;我们可以一步步去完成&#xff0c;从项目管理…

SQL进阶理论篇(二):数据库的设计范式

文章目录 简介数据库的设计范式有哪些数据库中的几种键从1NF到3NF1NF2NF3NFBCNF&#xff08;巴斯范式&#xff09; 反范式设计反范式的适用场景总结参考文献 简介 本小节主要内容&#xff1a; 数据库的设计范式都有哪些数据库的键都有哪些1NF、2NF和3NF都是指什么&#xff1f…

初识大数据应用,一文掌握大数据知识文集(1)

文章目录 &#x1f3c6;初识大数据应用知识&#x1f50e;一、初识大数据应用知识(1)&#x1f341; 01、请用Java实现非递归二分查询&#xff1f;&#x1f341; 02、是客户端还是Namenode决定输入的分片&#xff1f;&#x1f341; 03、mapred.job.tracker命令的作用&#xff1f;…

00TD I 秒变甜美小淑女,冬日氛围感拉满

一衣两穿的的气质款羽绒服 穿着轻松营造氛围感 90白鸭绒填充 厚实蓬松保暖性十足&#xff0c;大大的翻领显得脸小 又增添精致感&#xff0c;腰间系带系起来就像 穿了件可爱精致的小裙子般 解开也是另一种简约气质的感觉 小淑女们衣橱必入款。

水闸水雨情监测设施建设项目

功能设计 在水闸上、下游挡墙外侧各安装1套雷达水位计&#xff0c;水闸屋顶布置个雨量计&#xff0c;水位及雨量监测数据的采集与传输主要是实时的完成水位、雨量数据的采集与处理&#xff0c;并按照设定的工作方式、时间间隔、增量范围将数据上传至扬压力监测站边缘计算终端&…

【数据结构和算法】压缩字符串

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;双指针 三、代码 3.1 方法一&#xff1a;双指针 四、复杂度分析 前言 这是力扣…

如何搭建适合自己的数字人源码系统?

随着数字人技术的快速发展&#xff0c;数字人直播软件成为了直播行业的热门话题。数字人源码部署成为了创业者在这个领域看中的新商机&#xff0c;数字人直播软件给市场带来很多机会的同时也给商家带来了更多的收益。但是&#xff0c;选择一个适合自己的数字人直播软件源码并不…

模型数据-HttpServletRequest使用

模型数据-HttpServletRequest使用 三种情况 自己也要添加一些属性到Request域中,可以通过原生Servlet API的request来设置.也可以修改按照默认机制已经放进去 的某些对象.明白默认情况下存放的名字其实就是类名/类型名 首字母小写.(虽然monster100改了,但还是按类名首字母小写…

大模型时代-从0开始搭建大模型

开发一个简单模型的步骤&#xff1b; 搭建一个大模型的过程可以分为以下几个步骤&#xff1a; 数据收集和处理模型设计模型训练模型评估模型优化 下面是一个简单的例子&#xff0c;展示如何使用Python和TensorFlow搭建一个简单的大模型。 数据收集和处理 首先&#xff0c;我…

node-static 任意文件读取漏洞复现(CVE-2023-26111)

0x01 产品简介 node-static 是 Node.js 兼容 RFC 2616的 HTTP 静态文件服务器处理模块&#xff0c;提供内置的缓存支持。 0x02 漏洞概述 node-static 存在任意文件读取漏洞&#xff0c;攻击者可通过该漏洞读取系统重要文件&#xff08;如数据库配置文件、系统配置文件&#…

Java使用Microsoft Entra微软 SSO 认证接入

1. Microsoft Entra Microsoft Entra ID 是基于云的标识和访问管理服务&#xff0c;可帮助员工访问外部资源。 示例资源包括 Microsoft 365、Azure 门户以及成千上万的其他 SaaS 应用程序。 Microsoft Entra ID 还可帮助他们访问你的企业 Intranet 上的应用等内部资源&#x…

行业报告 | 中国工业机器人的“春天”

原创 | 文 BFT机器人 前言&#xff1a; 工业机器人是先进制造业中不可替代的重要装备&#xff0c;是衡量国家制造业水平和科技水平的重要标志。中国作为世界公认的制造业第一大国&#xff0c;随着人口红利的逐渐消退&#xff0c;劳动力成本不断提高&#xff0c;生产自动化和发…

纺织辅料企业网站搭建的效果如何

纺织品是日常生活必需品&#xff0c;服装、鞋帽箱包等品牌企业很多&#xff0c;纺织辅料的需求度也很高&#xff0c;对企业商家来说&#xff0c;市场高需求度的同时也面临着一些痛点&#xff1a; 1、品牌宣传、产品展示难 纺织辅料产品属于国内外都可以拓展&#xff0c;并没有…

Node.js创建一个简单的WebSocket接口,实现通信交互

Node.js创建一个简单的WebSocket接口&#xff0c;实现通信交互 一、为什么使用WebSocket&#xff1f; WebSocket&#xff0c;最大特点就是&#xff0c;服务器可以主动向客户端推送信息&#xff0c;客户端也可以主动向服务器发送信息&#xff0c;是真正的双向平等对话&#xf…