当前位置: 首页 > news >正文

xtrabackup全备 增备

版本针对mysql8.0版本

官方下载地址 https://www.percona.com/downloads

自行选择下载方式

yum安装方式 

 1、下载上传服务器 安装软件 

[root@master mysql]# ll percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm
-rw-r--r--. 1 root root 44541856 Oct 10 13:25 percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm
[root@master mysql]# yum -y install percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm
[root@master ~]# xtrabackup -version
2023-10-11T15:13:58.035145+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --datadir=/usr/local/mysql/data
xtrabackup version 8.0.33-28 based on MySQL server 8.0.33 Linux (x86_64) (revision id: b3a3c3dd)
[root@master ~]#

自行安装mysql 作为测试数据库使用

或者使用此脚本

注意 需要修改

数据库下载地址

https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster-8.0.33-linux-glibc2.12-x86_64.tar.xz

tar -xvf /opt/src/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

要下载mysql软件包 上传到服务器的指定目录

[root@master ~]# cat install_mysql.sh
#!/bin/bashcheck_mysql_installed() {local num=$(pgrep mysqld |wc -l)if [ $num -eq 2 ]; thenecho "MySQL is already installed."return 0elsereturn 1fi
}install_mysql() {tar -xvf /opt/src/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local/cd /usr/local && mv mysql-8.0.33-linux-glibc2.12-x86_64/ mysql/mkdir -p /var/lib/mysqlmkdir -p /usr/local/mysql/datamkdir -p /usr/local/mysql/loggroupadd mysqluseradd -r -g mysql mysqlchown -R mysql:mysql /usr/local/mysqlchmod -R 777         /var/lib/mysql/chown -R mysql:mysql /usr/local/mysql/datachown -R mysql:mysql /usr/local/mysql/logchown -R mysql:mysql /var/lib/mysql/mysql.sockrm -rf /etc/my.cnfcat > /etc/my.cnf <<EOF
[mysql]
default-character-set=utf8[mysqld]
lower-case-table-names=1
port=3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=100000
wait_timeout=3153600
character-set-server=utf8
default-storage-engine=InnoDB
max_allowed_packet=200M
pid-file=/usr/local/mysql/mysqld.pid
log-error=/usr/local/mysql/log/mysqld.log
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
EOFcd /usr/local/mysql./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/cp ./support-files/mysql.server /etc/rc.d/init.d/mysqldln -sv /usr/local/mysql/bin/mysql /usr/bin/mysqlchkconfig --add mysqldsystemctl start mysqld
}if check_mysql_installed; thenexit 0
elseinstall_mysqlif check_mysql_installed; thenecho "MySQL installed successfully."elseecho "Failed to install MySQL."fi
fi

数据库默认密码查看 cat tailf /usr/local/mysql/log/mysqld.log

1、mysql -uroot -p

输入初始密码

进入数据库先修改密码,不修改密码不能使用

alter user "root"@"localhost" identified by '123456';

表示用户"root"可以从任何主机连接到MySQL数据库,方便我们使用外部工具

update mysql.user set host="%" where user="root";

创建一个给备份时候用的数据库

create user "back"@"%" identified by "123456";

#这个注意授权的权限我开启的全部,因为是测试环境为了方便,如果是给公司生产上使用,建议还是规范使用授权

grant all on *.* to "back"@"%";

FLUSH PRIVILEGES;

创建数据库就自行创建,使用工具点点就创建了

=========================================================================

在开始全量备份前 准备一些测试数据库方便验证

开始全量备份

# 全量备份数据库 
mkdir -p /backup/full
xtrabackup --backup --target-dir=/backup/full --user=back --password=123456 --host=192.168.25.129 --port=3306# 备份数据目录
mv /usr/local/mysql/data/ /usr/local/mysql/databak  # 重命名表示已备份数据目录# 停止 MySQL 服务器
systemctl stop mysql# 创建新的数据目录
mkdir /usr/local/mysql/data/  # 创建新的数据目录以准备恢复
chown -R mysql:mysql /usr/local/mysql/data  # 设置目录所有者为MySQL用户# 准备备份数据
xtrabackup --prepare --apply-log-only --target-dir=/backup/full/
xtrabackup --prepare --target-dir=/backup/full/# 复制备份数据到新的数据目录
xtrabackup --copy-back --target-dir=/backup/full/# 设置新的数据目录的权限
chown -R mysql:mysql /usr/local/mysql/data/*# 启动 MySQL 服务器
systemctl start mysql

 在执行第一步全量备份后把初始数据库的data目录给更改后创建新的空data目录,就是等于把data  给清空

在执行后面的恢复数据库登录数据库查看还是正常的数据

 

=========================================================================

上面是全量的备份、恢复

增量数据备份 恢复就是在全量备份的基础上继续备份,备份的数据是后续生产的数据

比如 早上9点全量备份后   增量备份是在下午6点,那么这一次的增量数据就是9点到6点的数据

上面已经做过全量备份全量备份的目录是在 /backup/full 里面

开始增量备份前需要数据库在创建一些测试数据经行对比

自己自行创建创建完成后执行

1、创建测试数据  执行下面语句

xtrabackup --backup --target-dir=/backup/inc1 --user=back --password=123456 --host=192.168.25.129 --port=3306 --incremental-basedir=/backup/full

注意  上下这俩个都是增量备份数据的恢复  一个是inc1  一个是inc2

inc1数据目录是根据/backup/full 后开始备份

inc2数据目录是根据/backup/inc1后开始备份

inc1备份数据  也要和inc2数据有些区别

这个最后会解释

2、创建不一样的测试数据  执行下面语句

xtrabackup --backup --target-dir=/backup/inc2 --user=back --password=123456 --host=192.168.25.129 --port=3306 --incremental-basedir=/backup/inc1

 重复操作删除数据库的data目录

3、删除data mysql数据库目录   
mv /usr/local/mysql/data /usr/local/mysql/data5 4、创建新的 授权mysql
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/data/# 在备份目录执行以下命令以准备全量备份数据
xtrabackup --prepare --apply-log-only --target-dir=/backup/full/# 接下来,添加第一个增量备份
xtrabackup --prepare --apply-log-only --target-dir=/backup/full/ --incremental-dir=/backup/inc1/# 如果有第二个增量备份,也可以添加它
xtrabackup --prepare --apply-log-only --target-dir=/backup/full/ --incremental-dir=/backup/inc2/# 最后的准备,这会完成整个数据库恢复
xtrabackup --prepare --target-dir=/backup/full/# 将数据拷贝回MySQL数据目录
xtrabackup --copy-back --target-dir=/backup/full/# 修改MySQL数据目录的所有者,以确保MySQL可以访问
chown -R mysql:mysql /usr/local/mysql/data/*# 重新启动MySQL服务以加载恢复后的数据
systemctl restart mysqld

查看是否恢复了全部数据

上面是完整的使用操作,有问题留言

注意: 每次备份在备份数据库的目录下都有xtrabackup_checkpoints文件 

这是我的三个

cat /backup/full/xtrabackup_checkpoints[root@master ~]# cat /backup/full/xtrabackup_checkpoints
backup_type = full-prepared
from_lsn = 0
to_lsn = 19679426
last_lsn = 19679426
flushed_lsn = 19679426
redo_memory = 0
redo_frames = 0[root@master ~]# cat /backup/inc1/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 19639598
to_lsn = 19653067
last_lsn = 19653067
flushed_lsn = 19653067
redo_memory = 0
redo_frames = 0[root@master ~]# cat /backup/inc2/xtrabackup_checkpoints
backup_type = incremental
from_lsn = 19653067
to_lsn = 19679426
last_lsn = 19679426
flushed_lsn = 19679426
redo_memory = 0
redo_frames = 0


[root@master ~]#

备份的 开始是 LSN(from_lsn )

结束是 LSN(to_lsn),

from_lsn 应该等于上一步备份的 to_lsn

要保证 inc1的to_lsn是19653067    inc2的from_lsn是 19653067

所以每次增量都是从上次一的尾开始到第一次的头结束

不然会有这个报错

2023-10-11T14:20:41.209319+08:00 0 [ERROR] [MY-011825] [Xtrabackup] This incremental backup seems not to be proper for the target.
2023-10-11T14:20:41.209325+08:00 0 [ERROR] [MY-011825] [Xtrabackup] Check 'to_lsn' of the target and 'from_lsn' of the incremental.

生产环境使用脚本 比如 每8天晚上11点经行一次全量备份   每个3天的晚上11一次增备份

主备份可以每次生成一个时间戳文件,检测/back下面的文件删除30天之前文件,增倍目录也是一样的操作

/back/时间戳

增备份一个目录

 

 

相关文章:

xtrabackup全备 增备

版本针对mysql8.0版本 官方下载地址 https://www.percona.com/downloads 自行选择下载方式 yum安装方式 1、下载上传服务器 安装软件 [rootmaster mysql]# ll percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm -rw-r--r--. 1 root root 44541856 Oct 10 13:25 percona-x…...

【广州华锐互动】灭火器使用VR教学系统应用于高校消防演练有什么好处?

在科技发展的大潮中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术以其独特的沉浸式体验赢得了各个领域的青睐&#xff0c;其中包括教育和培训。在高校消防演练中&#xff0c;VR也成为了一种新的消防教育方式。 由广州华锐互动开发的VR消防演练系统&#xff0c;就包含了校…...

Pymol做B因子图

分子动力学模拟结束后&#xff0c;获得蛋白的平均结构&#xff0c; 比如获得的平均结构为WT-average.pdb 然后将平均结构导入到Pymol 中&#xff0c;可以得到B因子图。 gmx rmsf -f md_0_100_noPBC.xtc -s md_0_100.tpr -o rmsf-per-residue.xvg -ox average.pdb -oq bfactors…...

EKF例程 matlab

% 不含IMU误差方程的EKF滤波典型程序&#xff0c;适用于多次滤波的第二级 % author:Evand % date: 2023-09-20 % Ver1 clear;clc;close all; global T %% initial T 0.1; %采样率 t [T:T:100]; Q 0.1diag([1,1,1]);wsqrt(Q)randn(size(Q,1),length(t)); R 1diag([1,1,1]);v…...

【C语言】atoi函数的模拟

atoi对于初学者来说大概率是一个陌生的函数 但不要害怕&#xff0c;我们可以通过各种网站去查询 例如&#xff1a; cplusplus就是一个很好的查询网站 目录 函数介绍模拟实现需要注意的点 函数介绍 我们发现这是一个将字符串转换为整形数字的函数 例如&#xff1a; int main()…...

JAXB 使用记录 bean转xml xml转bean 数组 继承 CDATA(转义问题)

JAXB 使用记录 部分内容引自 https://blog.csdn.net/gengzhy/article/details/127564536 基础介绍 JAXBContext类&#xff1a;是应用的入口&#xff0c;用于管理XML/Java绑定信息 Marshaller接口&#xff1a;将Java对象序列化为XML数据 Unmarshaller接口&#xff1a;将XML数…...

Linux Centos安装Sql Server数据库,结合cpolar内网穿透实现公网访问

目录 前言 1. 安装sql server 2. 局域网测试连接 3. 安装cpolar内网穿透 4. 将sqlserver映射到公网 5. 公网远程连接 6.固定连接公网地址 7.使用固定公网地址连接 前言 简单几步实现在Linux centos环境下安装部署sql server数据库&#xff0c;并结合cpolar内网穿透工具…...

Vulnhub系列靶机---Raven: 2

文章目录 信息收集主机发现端口扫描目录扫描用户枚举 漏洞发现漏洞利用UDF脚本MySQL提权SUID提权 靶机文档&#xff1a;Raven: 2 下载地址&#xff1a;Download (Mirror) 信息收集 靶机MAC地址&#xff1a;00:0C:29:15:7F:17 主机发现 sudo nmap -sn 192.168.8.0/24sudo arp…...

计算机视觉与深度学习 | 视觉惯性SLAM的基础理论

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 视觉惯性SLAM的基础理论 引言三维空间刚体的运动表示旋转矩阵(Rotatio…...

[电源选项]没有系统散热方式,没有被动散热选项

背景 笔记本的风扇声音太大&#xff0c;想改成被动散热方式&#xff0c;又不想影响性能。 于是我打开了控制面板\所有控制面板项\电源选项&#xff0c;点更改计划设置-> 更改高级电源设置。 想把散热方式改成被动散热。发现win11中好像没有这个选项了&#xff01; 如何…...

房产中介租房小程序系统开发搭建

随着移动互联网的发展&#xff0c;租房小程序已经成为许多房产中介公司转型线上的重要工具。通过租房小程序&#xff0c;房产中介公司可以方便地展示房源信息、吸引租户、达成交易。那么&#xff0c;如何通过乔拓云网开发租房小程序呢&#xff1f;下面是详细的开发指南。 1.进入…...

RS485电路设计

引言 今天学习RS485电路的设计。 首先先来了解一下RS485电路是什么干什么。 RS485是一种串行通信协议&#xff0c;也是一种电气标准。它可以用于在远距离范围内传送数据&#xff0c;最长传输距离可以达到1200米&#xff0c;可以支持多个设备同时通信。RS485通常应用于工业自…...

分布式文件服务器——Windows环境MinIO的三种部署模式

上节简单聊到MinIO&#xff1a;分布式文件存储服务——初识MinIO-CSDN博客&#xff0c;但没具化&#xff0c;本节开始展开在Windows环境下 MinIO的三种部署模式&#xff1a;单机单节点、单机纠删码、集群模式。 部署的几种模式简要概括 所谓单机单节点模式&#xff1a;即MinI…...

科技资讯|9月新能源汽车零售74.3万辆,充电桩迎来发展高峰

据中国乘联会发布的初步数据&#xff0c;中国 9 月份乘用车市场零售 202.8 万辆&#xff0c;同比增长 6%&#xff0c;环比增 6%。今年以来&#xff0c;我国乘用车市场累计零售 1,524 万辆&#xff0c;同比增长 2%。 乘联会预计&#xff0c;9 月份新能源车市场零售 74.3 万辆&a…...

【C++ Primer Plus学习记录】指针——小结

目录 1.声明指针 2.给指针赋值 3.对指针解除引用 4.区分指针和指针所指向的值 5.数组名 6.指针算术 7.数组的动态联编和静态联编 8.数组表示法和指针表示法 1.声明指针 使用下面的格式声明指向特定类型的指针&#xff1a; typeName *pointerName; 2.给指针赋值 应将内…...

Android Studio for Platform (ASfP) 使用教程

文章目录 编写脚本下载源代码lunch 查看版本 归纳的很清楚&#xff0c;下载Repo并下载源码->可以参考我的 Framework入门のPiex 6P源码(下载/编译/刷机) 启动图标&#xff08;重启生效&#xff09; [Desktop Entry] EncodingUTF-8 NameAndroidStudio …...

【安全】linux audit审计使用入门

文章目录 1 audit简介2 auditctl的使用2 audit配置和规则3 工作原理4 audit接口调用4.1 获取和修改配置4.2 获取和修改规则4.3 获取审计日志 5 audit存在的问题5.1 内核版本5.2 审计日志过多造成的缓存队列和磁盘问题5.2 容器环境下同一个命令的日志存在差异 6 参考文档 1 audi…...

如何优雅的终止 Docker 容器

init 系统有以下几个特点&#xff1a; 它是系统的第一个进程&#xff0c;负责产生其他所有用户进程。 init 以守护进程方式存在&#xff0c;是所有其他进程的祖先。 它主要负责&#xff1a; 启动守护进程 回收孤儿进程 将操作系统信号转发给子进程 1. Docker 容器停止过程…...

SXSSFWorkbook-MinIo-大数据-流式导出

文章目录 前言业务现状架构思路技术细节生成摘要IDSXSSFWorkbookMinIomybatis 流查询PipedInputStream 保存到minio 总结 前言 由于业务涉及到数据比较大&#xff0c;用户对导出功能使用频繁&#xff0c;每次导出数据两10万以上。 为了减少数据库压力&#xff0c;及应用服务器…...

使用PyQt5创建图片查看器应用程序

使用PyQt5创建图片查看器应用程序 作者&#xff1a;安静到无声 个人主页 在本教程中&#xff0c;我们将使用PyQt5库创建一个简单的图片查看器应用程序。这个应用程序可以显示一系列图片&#xff0c;并允许用户通过按钮切换、跳转到不同的图片。 1. 准备工作 首先&#xff0…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

CppCon 2015 学习:REFLECTION TECHNIQUES IN C++

关于 Reflection&#xff08;反射&#xff09; 这个概念&#xff0c;总结一下&#xff1a; Reflection&#xff08;反射&#xff09;是什么&#xff1f; 反射是对类型的自我检查能力&#xff08;Introspection&#xff09; 可以查看类的成员变量、成员函数等信息。反射允许枚…...

Yii2项目自动向GitLab上报Bug

Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...