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教学系统应用于高校消防演练有什么好处?
在科技发展的大潮中,虚拟现实(VR)技术以其独特的沉浸式体验赢得了各个领域的青睐,其中包括教育和培训。在高校消防演练中,VR也成为了一种新的消防教育方式。 由广州华锐互动开发的VR消防演练系统,就包含了校…...
Pymol做B因子图
分子动力学模拟结束后,获得蛋白的平均结构, 比如获得的平均结构为WT-average.pdb 然后将平均结构导入到Pymol 中,可以得到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滤波典型程序,适用于多次滤波的第二级 % 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对于初学者来说大概率是一个陌生的函数 但不要害怕,我们可以通过各种网站去查询 例如: cplusplus就是一个很好的查询网站 目录 函数介绍模拟实现需要注意的点 函数介绍 我们发现这是一个将字符串转换为整形数字的函数 例如: int main()…...
JAXB 使用记录 bean转xml xml转bean 数组 继承 CDATA(转义问题)
JAXB 使用记录 部分内容引自 https://blog.csdn.net/gengzhy/article/details/127564536 基础介绍 JAXBContext类:是应用的入口,用于管理XML/Java绑定信息 Marshaller接口:将Java对象序列化为XML数据 Unmarshaller接口:将XML数…...
Linux Centos安装Sql Server数据库,结合cpolar内网穿透实现公网访问
目录 前言 1. 安装sql server 2. 局域网测试连接 3. 安装cpolar内网穿透 4. 将sqlserver映射到公网 5. 公网远程连接 6.固定连接公网地址 7.使用固定公网地址连接 前言 简单几步实现在Linux centos环境下安装部署sql server数据库,并结合cpolar内网穿透工具…...
Vulnhub系列靶机---Raven: 2
文章目录 信息收集主机发现端口扫描目录扫描用户枚举 漏洞发现漏洞利用UDF脚本MySQL提权SUID提权 靶机文档:Raven: 2 下载地址:Download (Mirror) 信息收集 靶机MAC地址: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…...
[电源选项]没有系统散热方式,没有被动散热选项
背景 笔记本的风扇声音太大,想改成被动散热方式,又不想影响性能。 于是我打开了控制面板\所有控制面板项\电源选项,点更改计划设置-> 更改高级电源设置。 想把散热方式改成被动散热。发现win11中好像没有这个选项了! 如何…...
房产中介租房小程序系统开发搭建
随着移动互联网的发展,租房小程序已经成为许多房产中介公司转型线上的重要工具。通过租房小程序,房产中介公司可以方便地展示房源信息、吸引租户、达成交易。那么,如何通过乔拓云网开发租房小程序呢?下面是详细的开发指南。 1.进入…...
RS485电路设计
引言 今天学习RS485电路的设计。 首先先来了解一下RS485电路是什么干什么。 RS485是一种串行通信协议,也是一种电气标准。它可以用于在远距离范围内传送数据,最长传输距离可以达到1200米,可以支持多个设备同时通信。RS485通常应用于工业自…...
分布式文件服务器——Windows环境MinIO的三种部署模式
上节简单聊到MinIO:分布式文件存储服务——初识MinIO-CSDN博客,但没具化,本节开始展开在Windows环境下 MinIO的三种部署模式:单机单节点、单机纠删码、集群模式。 部署的几种模式简要概括 所谓单机单节点模式:即MinI…...
科技资讯|9月新能源汽车零售74.3万辆,充电桩迎来发展高峰
据中国乘联会发布的初步数据,中国 9 月份乘用车市场零售 202.8 万辆,同比增长 6%,环比增 6%。今年以来,我国乘用车市场累计零售 1,524 万辆,同比增长 2%。 乘联会预计,9 月份新能源车市场零售 74.3 万辆&a…...
【C++ Primer Plus学习记录】指针——小结
目录 1.声明指针 2.给指针赋值 3.对指针解除引用 4.区分指针和指针所指向的值 5.数组名 6.指针算术 7.数组的动态联编和静态联编 8.数组表示法和指针表示法 1.声明指针 使用下面的格式声明指向特定类型的指针: typeName *pointerName; 2.给指针赋值 应将内…...
Android Studio for Platform (ASfP) 使用教程
文章目录 编写脚本下载源代码lunch 查看版本 归纳的很清楚,下载Repo并下载源码->可以参考我的 Framework入门のPiex 6P源码(下载/编译/刷机) 启动图标(重启生效) [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 系统有以下几个特点: 它是系统的第一个进程,负责产生其他所有用户进程。 init 以守护进程方式存在,是所有其他进程的祖先。 它主要负责: 启动守护进程 回收孤儿进程 将操作系统信号转发给子进程 1. Docker 容器停止过程…...
SXSSFWorkbook-MinIo-大数据-流式导出
文章目录 前言业务现状架构思路技术细节生成摘要IDSXSSFWorkbookMinIomybatis 流查询PipedInputStream 保存到minio 总结 前言 由于业务涉及到数据比较大,用户对导出功能使用频繁,每次导出数据两10万以上。 为了减少数据库压力,及应用服务器…...
使用PyQt5创建图片查看器应用程序
使用PyQt5创建图片查看器应用程序 作者:安静到无声 个人主页 在本教程中,我们将使用PyQt5库创建一个简单的图片查看器应用程序。这个应用程序可以显示一系列图片,并允许用户通过按钮切换、跳转到不同的图片。 1. 准备工作 首先࿰…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...
