mysql 数据备份和恢复

news2024/11/16 21:54:57

操作系统:22.04.1-Ubuntu

在这里插入图片描述

mysql 版本:8.033

在这里插入图片描述

binlog 介绍

binlog 是mysql 二进制日志 binary log的简称,可以简单理解为数据的修改记录。
需要开启binlog,才会产生文件,mysql 8.0 默认开启,开启后可以在 /var/lib/mysql (这是mysql默认数据存储路径,如果用户自己指定则另说) 目录下看到一系列 binlog.xxxxxx 的文件
在这里插入图片描述

binlog刷新

每次mysql重启 都会生成一个新的binlog文件,也可以使用命令来刷新binlog
1、进入mysql,使用flush logs,会看到新生成了新的binlog.000011文件
在这里插入图片描述
2、mysqladmin -uroot -p flush-logs(这里也需要root账号密码)
在这里插入图片描述

备份与恢复

以下是官网的关于备份与恢复的翻译:
完整备份是必要的,但创建它们并不总是很方便。它们会生成大型备份文件,并且需要时间来生成。它们不是最佳的,因为每次连续的完全备份都包括所有数据,即使是自上次完全备份以来没有更改的部分。先进行初始完全备份,然后进行增量备份会更高效。增量备份更小,生成时间更短。代价是,在恢复时,不能仅通过重新加载完整备份来恢复数据。您还必须处理增量备份以恢复增量更改
官网关于备份恢复的链接
简而言之就是2种方式,完整和增量,优缺点也如上所述,下面描述2种方式的使用

完整备份与恢复

完整备份就是将所有数据以表的形式进行保存

备份

命令

mysqldump --all-databases --master-data --single-transaction > back_20220806_112100.sql

备份的同时刷新binlog文件

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > back_20220806_112100.sql

在这里插入图片描述
mysqldump 指令选项说明

恢复

如何恢复

执行指令

mysql <  back_20220806_112100.sql

如果需要密码则

mysql -uroot -p <  back_20220806_112100.sql

该指令相当于执行了备份文件中的sql语句。

可以先可以查看 备份文件,发现里面基本是以下语句:删除表,创建表,数据的插入,显然是以表为单位来备份的,恢复时也是以表来恢复的
因此可以得出结论:在利用备份文件进行数据恢复时,会恢复备份前的所有表数据,但不包括备份后新增加的表,新增的表有以下2中情况:
1、同一个数据库存在相同的表则被则会被覆盖
2、同一个数据库存在不同的表则忽略,因为备份文件中不含任何对该表的操作
在这里插入图片描述

增量恢复

备份

前面我们已经描述过 binlog是一个数据修改记录的文件,默认一个binlog文件代表一次运行的所有数据修改记录,然后也可以使用命令强制生成一个新的binlog文件作为新的起点来记录数据修改过程,因此增量备份其实是自动的,就是一个个binlog文件
在这里插入图片描述

恢复

恢复的前提是要备份,完整备份和增量备份在上面已经描述清楚,因此数据恢复就是利用备份文件+binlog文件来做任意回滚

举个例子,执行备份指令

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > back_20220806_153500.sql

生成备份文件以及新的binlog文件,从000005开始的binlog文件都是back_20220806_153500.sql备份文件的增量文件
在这里插入图片描述
在上面的基础上(生成了back_20220806_153500.sql 以及新的binlog.000005),现在做一个简单测试来验证数据恢复,分为几个步骤

  • 步骤1、新增一个数据库incrementTestDatabase,再添加一个表incrementTestTable,包含了id、test字段,以及一条数据(1,“test1”)
  • 步骤2、刷新binlog日志
  • 步骤3、删除incrementTestTable,在创建一个incrementTestTable表包含了id、test字段,以及一条数据(2,“test2”)
  • 步骤4、恢复成1中的数据(1,“test1”)
  • 步骤5、恢复成3中的数据(2,“test2”)
    开始测试
    执行步骤1,2效果
    在这里插入图片描述在这里插入图片描述
    执行步骤3后
    在这里插入图片描述
    现在我们开始执行步骤4
    显然我们知道
    binlog.000005中包含了数据(1,“test1”)的新建
    binlog.000006中包含了表的删除及(2,“test2”)的新建
    因此要恢复到步骤1,只需要back_20220806_153500.sql + binlog.000005
    先恢复备份
mysql -uroot -p <  back_20220806_153500.sql

备份基础上恢复修改记录

mysqlbinlog binlog.000005 | mysql -uroot -p

结果如下,与预料中的一样
在这里插入图片描述

现在我们开始执行步骤5,在步骤4的基础上,恢复binlog.000006

mysqlbinlog binlog.000006 | mysql -uroot -p

结果如下,与预料中的一样
在这里插入图片描述

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

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

相关文章

世界上最著名的密码学夫妻的历史

Alice和Bob是密码学领域里最著名的虚拟夫妻&#xff0c;自1978年“诞生”以来&#xff0c;到走进二十一世纪的移动互联网时代&#xff0c;作为虚构的故事主角&#xff0c;Alice和Bob不仅在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用&#xff0c;他们的名字也…

ESP-C3入门21. I2C接口点亮1306驱动的OLED屏

ESP-C3入门21. 点亮1306驱动的OLED屏 一、Espressif/ssd1306 驱动简介1. 驱动介绍2. OLED充电泵概念 二、I2C 通讯步骤1. 初始化 I2C 总线 (i2c_master_init()函数)&#xff1a;2. 创建 I2C 命令句柄 (i2c_cmd_handle_t cmd i2c_cmd_link_create())&#xff1a;3. 发送启动信号…

异步更新队列 - Vue2 响应式

前言 这篇文章分析了 Vue 更新过程中使用的异步更新队列的相关代码。通过对异步更新队列的研究和学习&#xff0c;加深对 Vue 更新机制的理解 什么是异步更新队列 先看看下面的例子&#xff1a; <div id"app"><div id"div" v-if"isShow&…

有哪些好用的设计图工具?

设计图纸制作软件是高级学习数字设计的最佳选择&#xff0c;无论你是想通过设计图纸制作软件创建一个明亮的设计&#xff0c;还是与其他设计师分享和交流。本文将介绍十个易于使用的设计图纸制作软件&#xff0c;其中大多数是初学者和高级艺术家&#xff0c;具有完整的绘图、照…

科研论文配图绘制指南——基于Python—第一章

目录 第一章1.1科研论文配图的绘制基础1.2科研论文配图的配色基础1.2.1 色轮配色原理1.2.3 颜色主题1.2.4 配色工具 总结 第一章 1.1科研论文配图的绘制基础 科研配图包括线性图、灰度图、照片彩图和综合配图四种类型&#xff0c;最经常使用为线型图。 建议使用EPS、PDF等矢量…

C语言:每日一练(选择+编程)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;打印1到最大的n位数 示例1 思路一&#xff1a; 题二&#xff1a;计算日期到天数转换 示例1 思路一&#xf…

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…

华为网络篇 RIP路由标记-31

难度2复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 路由标记tag是用于进行路由过滤的&#xff0c;它给相关的路由打标记&#xff0c;然后应用于路由策略中&#xff0c;路由器会根据策略进行路由过滤。比如&#xff0c;给静态路由…

题目:售货员的难题(状压dp)

售货员的难题 题目描述输入输出格式输入格式&#xff1a;输出格式&#xff1a; 输入输出样例输入样例#1&#xff1a;输出样例#1&#xff1a; 思路AC代码&#xff1a; 题目描述 某乡有n个村庄( 1 < n < 16 )&#xff0c;有一个售货员&#xff0c;他要到各个村庄去售货&am…

Smartbi 李代:人尽其才、数尽其用,Smartbi Eagle智慧数据运营平台全新亮相

数据是企业数字化转型的基石&#xff0c;也是赢得未来的核心资产和竞争力。数字化转型的关键&#xff0c;是在全公司建立一种数据驱动的组织和机制&#xff0c;营造数据文化的氛围&#xff0c;让更多的用户、在更多的场景中&#xff0c;有意愿、有能力使用数据&#xff0c;从而…

【C++】面向对象编程引入 ③ ( 面向过程编程的结构化程序设计方法 | 结构化程序设计方法概念 / 特点 / 优缺点 | 面向对象编程引入 )

文章目录 一、面向过程编程的结构化程序设计方法1、结构化程序设计方法概念2、结构化程序设计方法特点3、结构化程序设计方法优缺点 二、面向对象编程引入 一、面向过程编程的结构化程序设计方法 如果使用 面向过程语言 ( 如 : C 语言 ) , 开发 大型 项目 , 一般使用 结构化程序…

Apache SeaTunnel社区迎来新Committer!

采访&编辑 | Debra Chen 个人简介 姓名&#xff1a;马骋原公司&#xff1a;恒生电子 GitHub ID&#xff1a;rewerma个人擅长研究领域&#xff1a;java中间件、微服务、大数据等 您为社区提交了什么贡献&#xff1f;具体方案可以描述一下吗&#xff1f; 为SeatTunnel提交…

案例21 基于Spring Boot+Redis实现图书信息按书号存储案例

1. 案例需求 基于Spring BootRedis实现图书信息按书号存储和取出功能&#xff0c;数据存储至Redis。 2. 创建Spring Boot项目 创建Spring Boot项目&#xff0c;项目名称为springboot-redis02。 3. 选择依赖 ​ pom.xml文件内容如下所示&#xff1a; <?xml version&quo…

入门Web自动化测试之元素定位的配置管理

之前我们讲过Selenium使用教程&#xff0c;这一篇我们来学习元素定位的配置管理。 目的 Web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”&#xff0c;通常都会作为广大测试从业者的首选学习对象&#xff0c;相较于C/S架构的自动化来说&#xff0c;B/S有着其无…

AI巨浪下,数据技术如何驱动智能未来?

引言 数据技术是大数据时代的核心驱动力&#xff0c;也是推动各行各业数字化转型和智能化升级的关键因素。随着云计算、人工智能、区块链等新兴技术的不断发展和融合&#xff0c;数据技术也呈现出多模态、混合处理、自动化管理等新的趋势和特点。 8 月 19 日&#xff08;周六&…

UniApp 制作高德地图插件

1、下载Uni插件项目 在Uni官网下载Uni插件项目&#xff0c;并参考官网插件项目创建插件项目. 开发者须知 | uni小程序SDK 如果下载下来项目运行不了可以参考下面链接进行处理 UniApp原生插件制作_wangdaoyin2010的博客-CSDN博客 2、引入高德SDK 2.1 在高德官网下载对应SD…

e6zzseo:跨境独立站还能做起来吗?

跨境独立站指的是在其他国家或地区创建和运营自己的电子商务网站。虽然跨境独立站在理论上是可行的&#xff0c;但成功实施和运营它可能面临一些挑战。以下是e6zzseo分析的一些考虑因素和建议&#xff0c;以帮助你更好地评估是否可以成功运营跨境独立站&#xff1a; 做跨境独立…

【0基础入门Python笔记】python 之基础语法、基础数据类型、复合数据类型及基本操作

python 基础&#xff08;一&#xff09; 基础语法规则基础数据类型数字类型&#xff08;Numbers&#xff09;字符串类型&#xff08;String&#xff09;布尔类型&#xff08;Boolean&#xff09; 复合数据类型List&#xff08;列表&#xff09;Tuple&#xff08;元组&#xff0…

excel常见的数学函数篇2

二、数学函数 1、ABS(number)&#xff1a;返回数字的绝对值 语法&#xff1a;ABS(数字)&#xff1b;返回数字的绝对值&#xff1b;若引用单元格&#xff0c;把数字换为单元格地址即可 2、INT(number)&#xff1a;向小取整 语法&#xff1a;INT(数字)&#xff1b;若引用单元格…

自夹持P型屏蔽型碳化硅沟槽型绝缘栅双极晶体管,用于低开通电压和开关损耗

目录 标题&#xff1a;Self-Clamped P-shield SiC Trench IGBT for Low On-State Voltage and Switching LossProceedings of the 35st International Symposium on Power Semiconductor Devices & ICs摘要信息解释研究了什么文章的创新点文章的研究方法文章的结论 标题&am…