centos系统mysql数据库差异备份与恢复


文章目录

  • 差异备份mysql数据
      • 一、 安装 Percona XtraBackup
      • 数据库中创建一些数据
      • 三、创建全备份
      • 四、创建差异备份
          • 1. 在数据库中添加数据,让数据发生一些改变
          • 2. 创建第一个差异备份
          • 3. 数据库中再次添加一些数据
          • 4. 创建第二个差异备份
      • 五、模拟数据丢失,删库
      • 六、准备备份数据
      • 七、恢复数据

差异备份mysql数据

一、 安装 Percona XtraBackup

# 添加 Percona 仓库
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm  # 安装 Percona XtraBackup  
sudo yum install percona-xtrabackup-83 -y # 注意:版本号可能会变化# 83版本工具只支持mysql80以上版本

数据库中创建一些数据

如果数据库中已有默认以外的数据,直接跳过

CREATE DATABASE IF NOT EXISTS test;		#创建一个名为test的数据库
USE test;								#使用数据库
#创建一个名为t1的表CREATE TABLE IF NOT EXISTS t1 (  				id INT AUTO_INCREMENT PRIMARY KEY,  name VARCHAR(100) NOT NULL,  age INT  
);
#向t1表中插入一些数据INSERT INTO t1 (name, age) VALUES ('Alice', 30);  
INSERT INTO t1 (name, age) VALUES ('Bob', 25);  
INSERT INTO t1 (name, age) VALUES ('Charlie', 35);#查看表中所有记录
SELECT * FROM t1;

在这里插入图片描述

三、创建全备份

首先,你需要为 MySQL 数据库创建一个全备份、这是差异备份的基础

#创建一个备份目录
mkdir /data/backup -p
# 使用 xtrabackup 执行完全备份  
xtrabackup --defaults-file=/etc/my.cnf \	#使用配置文件连接
--backup -uroot -p'你的密码' \
--target-dir=/data/backup/base  \			#全备份目录
--no-server-version-check 					#不检查版本

注意:在实际操作中,请不要直接在命令行中包含密码,而是通过配置文件或环境变量来管理密码

四、创建差异备份

在进行了全备份之后,你可以根据需要创建多个差异备份

差异备份只包含全备份以来发生更改的数据

1. 在数据库中添加数据,让数据发生一些改变
use test;			\\使用test数据库
#插入一些记录
INSERT INTO t1 (name, age) VALUES ('David', 28);  
INSERT INTO t1 (name, age) VALUES ('Eva', 32);  
INSERT INTO t1 (name, age) VALUES ('Frank', 29);

在这里插入图片描述

2. 创建第一个差异备份
#差异备份都是基于全备份的
xtrabackup --defaults-file=/etc/my.cnf \		#使用配置文件连接--backup \				--target-dir=/data/backup/inc1 \			#第一次差异备份目录--incremental-basedir=/data/backup/base  \	#全备份目录,在全目录的基础上备份新数据-uroot -p'你的密码' \--no-server-version-check			#   '\'代表换行,这是一条命令

显示completed OK! 就成功了,若是报错可以点击以下链接博客查询
mysql全备份,及各种报错详解
在这里插入图片描述

3. 数据库中再次添加一些数据
use test;
#再次插入一些记录
INSERT INTO t1 (name, age) VALUES ('Grace', 27);  
INSERT INTO t1 (name, age) VALUES ('Henry', 31);  
INSERT INTO t1 (name, age) VALUES ('Ivy', 24);  
INSERT INTO t1 (name, age) VALUES ('Jack', 33);

在这里插入图片描述
在这里插入图片描述

4. 创建第二个差异备份
#跟前一个差异备份唯一的区别就是换了一下备份目录
xtrabackup --defaults-file=/etc/my.cnf \			#使用配置文件连接--backup \--target-dir=/data/backup/inc2 \				# 第二次差异备份目录--incremental-basedir=/data/backup/base  \		# 全备份目录,在全备份的基础上备份新数据-uroot -p'你的密码' \--no-server-version-check						#   '\'代表换行,这是一条命令

在这里插入图片描述

五、模拟数据丢失,删库

 systemctl stop mysqld			\\停止mysql数据库rm -rf /var/lib/mysql/*		\\删除mysql下的所有数据#这时mysql数据库已经登不上了

六、准备备份数据

在恢复之前,你需要准备备份数据。跟增量备份不同的是,不需要准备所有的备份,只需要准备第一次的全备份和最后一次差异备份即可。

#准备全备份数据xtrabackup --defaults-file=/etc/my.cnf \	#使用配置文件连接--prepare --apply-log-only \				#准备备份,只第一次使用 --apply-log-only--target-dir=/data/backup/base \			#全备份目录--no-server-version-check					#不检查版本信息

在这里插入图片描述

#在全备份数据的基础上准备差异备份数据
xtrabackup --defaults-file=/etc/my.cnf \		#使用配置文件连接
--prepare  
--target-dir=/data/backup/base \				#全备份目录
--incremental-basedir=/data/backup/inc2   \		#最后一次差异备份
--no-server-version-check						#不检查服务版本

在这里插入图片描述

七、恢复数据

#恢复数据
xtrabackup --defaults-file=/etc/my.cnf \		#使用配置文件连接
--copy-back \									#恢复数据
--target-dir=/data/backup/base \				#全备份目,此时此目录数据是所有数据
--no-server-version-check						

此时所有数据就都恢复了
在这里插入图片描述

#将恢复的数据给上mysql用户权限
chown -R mysql.mysql /var/lib/mysql
#重启mysqlsystemctl restart mysqld
#登录mysql
mysql -uroot -p'你的密码';
#查看所有数据库
show databases;

在这里插入图片描述

若是中途遇到一些无法解决的问题以下链接可能有解决方式
centos系统mysql数据库完全备份与恢复,以及各种报错解决方案

回到顶层

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

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

相关文章

nest学习笔记(一)

介绍 nest是一个用于构建高效,可拓展的nodejs服务端应用程序的框架,它使用渐进式javascript,使用Typescript构建并且完全支持Typescript,而且运行开发者使用javascript编写代码,提供了OOP、FP、FRP nest的底层是基于…

Kolla-Ansible的确是不支持CentOS-Stream系列产品了

看着OpenStack最新的 C 版本出来一段时间了,想尝个鲜、用Kolla-Ansible进行容器化部署,结果嘛。。。 根据实验结果,自OpenStack Bobcat版本开始,Kolla-Ansible就适合在CentOS系列产品上部署了,通过对 Bobcat和Caracal…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17(可不配置环境变量) 目前skywalking 9.0及以上版本基本都不支持JDK8,需要JDK11-21,具体版本要求在官网查看。 我这里使用的是skywalking9.…

每日好题(2)

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) {int arr[6] { 1,2,3,4,5,6 };char* p arr;int sz sizeof(arr) / sizeof(arr[0]);for (int a 0; a < sz; a){printf("%d\n", *p);p 4;}return 0; }这串代码遍历打印数组的结果是没…

BGP选路之Preferred value

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由&#xff0c;然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较&#xff0c;从而决定是否将该最优…

小程序多排数据横向滚动实现

如何实现多排数据滚动效果 swiper 外部容器 swiper-item 每一页的数据 因为现在有多排数据,现在在swiper-item 中需要循环一个数组 初版 <template><view><view class"container"><view class"swiper-box"><swiper class&qu…

操作系统——笔记(1)

操作系统是管理计算机硬件资源&#xff0c;控制其他程序运行并为用户提供交互操作界面的系统软件的集合&#xff0c;控制和管理着整个计算机系统的硬件和软件资源&#xff0c;是最基本的系统软件。 常见的操作系统&#xff1a;ios、windows、Linux。 计算机系统的结构层次&am…

“论软件测试中缺陷管理及其应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 软件缺陷指的是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误&#xff0c;或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。在目前的软件开发过程中&#xff0c;缺陷是不可避免的。软件测试是发现缺陷的主要手段&#xf…

计算机网络基础:2.TCP/IP模型中的各层协议、IP地址

一、TCP/IP模型中的各层协议 接着第一篇餐厅运营的例子来解释一下TCP/IP五层模型中的每一层协议&#xff1a; 1. 应用层&#xff08;餐饮一体机&#xff09; 在TCP/IP模型中&#xff0c;应用层直接与用户交互&#xff0c;提供网络服务。这一层将OSI模型的应用层&#xff08;点…

colab进行keras入门随机数和标签的一点思考,例如shape和Dense等

keras官方中文文档 pip install kerasfrom keras import layers from keras import modelsmodel.add(layers.Dense(32,activationrelu,input_shape(100,)))# 添加多个Dense层 model.add(layers.Dense(10,activationsoftmax)) model.compile(optimizerrmsprop,losscategorical_…

pikachu之sql lnjet 字符型注入

先测试一下闭合 注释符号&#xff1a;-- 注释符号可以忽略其后的内容&#xff0c;使得后续的原始查询内容不会影响我们注入的SQL代码。 条件测试&#xff1a;通过and 11和and 12分别测试真假条件&#xff0c;可以判断输入是否成功闭合&#xff0c;并且可以检测注入是否成功。 …

Kotlin 协程 — 基础

Kotlin 协程 — 基础 协程已经存在一段时间了&#xff0c;关于它的各种文章也很多。但我发现想要了解它还比较费时&#xff0c;所以我花了一段时间才真正理解了协程的基础知识以及它的工作原理。因此&#xff0c;我想分享一些我理解到的内容。 什么是协程&#xff1f; 协程代表…

关于OLED的I2C手册记录

首先我们从淘宝上面找到对应OLED 4pin iic驱动的ssd1306手册&#xff0c;它有多种的驱动方式&#xff0c;我们只需要看看他这个i2c模式。 我们可以从中看到 Slave address R/W后面的#代表低电平是W。 SA0是它的一个 slave address bit 可以使用 这两个都可以作为OLED的 设备…

分布式事务与Seata落地

分布式事务与Seata落地 一、事务基础 1.1 本地事务 事务指的就是一个操作单元, 在这个操作单元中的所有操作最终要保持一致的行为, 要么所有操作都成功, 要么所有的操作都被撤销。 1.2 本地事务特性 本地事务四大特性: ACID A: 原子性(Atomicity), 一个事务中的所有操作, …

如何通过一条SQL变更多个分库分表?

数据库发展到今天&#xff0c;分库分表已经不是什么新鲜话题了&#xff0c;传统的单节点数据库架构在数据量和访问频次达到一定规模时&#xff0c;会出现性能瓶颈和扩展性问题&#xff0c;而分库分表技术通过将数据分散到多个数据库实例中来分担负载&#xff0c;从而提升系统的…

数字信号||离散序列的基本运算(2)

实验二 离散序列的基本运算 一、实验目的 (1)进一步了解离散时间序列时域的基本运算。 (2)了解MATLAB语言进行离散序列运算的常用函数&#xff0c;掌握离散序列运算程序的编写方法。 二、实验涉及的MATLAB子函数 1.find 功能&#xff1a;寻找非零元素的索引号。 调用格…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值&#xff08;PrefVal)&#xff0c;如果 PrefVal相同&#xff0c;就会比较本…

Linux_权限3

Linux所对应的文件类型 1.在Win下&#xff0c;有文件类型&#xff0c;通常通过后缀标识 日常用的就是windows系统这里不做举例. 2.Linux的文件类型不通过后缀区分&#xff08;不代表Linux不用后缀) 其中需要注意的是第一个字符表示文件类型的含义 - :普通文件, 文本, 源代码…

解决:uniapp 小程序 使用swiper 内部嵌套另外一个拥有左右滑动组件导致滑动冲突

解决办法 在swiper-item 内增加这个属性进行包裹 touchmove.stop <div touchmove.stop><qiun-data-charts type"area" :opts"optsStg" :chartData"dateDataStg" /> </div>

嘉立创|如何在原理图中框选任意元件

点击编辑—选择对象—对边形内部 便可以任意框选 选中之后&#xff0c;进入pcb板界面也选中了相同器件