MYSQL使用binlog日志恢复数据
本教程目的在于,你的MYSQL采用了binlog日志,且产生了binlog日志文件,使用日志文件恢复数据。
步骤一、找到要恢复数据的binlog文件
怎么找?使用命令:show variables like '%log_bin%';
如下图:这个路径就是你的binlog日志的文件夹
如下图:可能存在好多个 binlog日志文件,例如:binlog.000013
有些教程里,文件名也可能是这样的:mysql-bin.000001
步骤二:把日志文件导出为.sql文件
这里提醒:最好不要执行命令查看内容:show binlog EVENTS in 'binlog.000019';
因为文件太大的话,可能有上亿条数据...
导出命令有两种,一种根据 事务区间导出,一种根据日期区间导出
事务区间:--start-position=573 --stop-position=718
日期区间:--start-datetime="2022-08-10 9:16:59" --stop-datetime="2022-08-13 5:06:48"
事务区间导出命令:
mysqlbinlog --no-defaults --start-position=1525059 --stop-position=1525612 C:\mysql\Data\binlog.000013 -d 数据库名 > d:\test_pot.sql
日期区间导出命令:
mysqlbinlog --no-defaults --start-datetime="2022-08-10 9:16:59" --stop-datetime="2022-08-13 5:06:48" C:\mysql\Data\binlog.000013 -d 数据库名> d:\test.sql
怎么执行命令呢?不要进入mysql中执行,这个是依赖mysql\bin\mysqlbinlog.exe来运行的。
如下图:
导出后文件格式具体如下:
步骤三、执行导出的恢复文件test.sql
怎么执行命令呢?这个要命令行登录mysql执行。
登录mysql命令:mysql -h localhost -u root -p,输入密码
进入mysql后,切换数据库
最后执行恢复命令:source C:\Users\E590\Desktop\test.sql (第二步导出的.sql文件)
等待执行完成。然后就会发现,你的数据回来了。
注意事项:
- 1、第二步在导出恢复数据test.sql文件时、一定不能在命令中加 --base64-output=decode-rows
加上后,导出的sql文件执行了也不能恢复。这种导出的更方便我们用来分析,恢复那段时间区间或者事务区间的内容。
下面两种图同一个时间段、同一个事务点的展示如下
加 --base64-output=decode-rows 导出的文件示例:
不加 --base64-output=decode-rows 导出的文件,执行后可恢复数据,示例:
上面两图,
第一张加上--base64-output=decode-rows导出的,我们可以用来分析,决定恢复哪些时间段内的,或者哪些 事务区间段内的。这样就能找到 第二步的 开始时间 结束时间 或者事务区间 的开始事务节点,结束事务节点。
在分析好 区间以后,再次不加--base64-output=decode-rows导出的,用来执行恢复。
- 2、执行导出命令后,可能有如下提示,可以忽略不用管。
WARNING: The range of printed events ends with a row event or a table map event that does not have the STMT_END_F flag set. This might be because the last statement was not fully written to the log, or because you are using a --stop-position or --stop-datetime that refers to an event in the middle of a statement. The event(s) from the partial statement have not been written to output.
MYSQL使用binlog日志恢复数据相关推荐
- Mysql基于binlog日志恢复数据
Mysql基于binlog日志恢复数据 1.Linux安装mysql https://blog.csdn.net/qq_44981526/article/details/126717005 可能遇到的 ...
- Mysql 通过 binlog日志 恢复数据(数据搞丢看过来)
1.查看binlog是否开启 #查看binlog是否开启 show variables like '%log_bin%'; 2.锁表,防止数据被污染(可根据需求,不阻塞业务的情况) #锁表,防止数据被 ...
- mysql日志恢复数据_Mysql 通过binlog日志恢复数据
Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日 ...
- MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...
- MySQL二进制binlog日志说明以及利用binlog日志恢复数据
MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...
- binlog是什么?能做什么?Window下怎么开启binlog?怎么查看binlog日志?利用binlog日志恢复数据
binlog是什么?能做什么?Window下怎么开启binlog?怎么查看binlog日志?利用binlog日志恢复数据 windows如何开启Binlog日志 文档来源 ##1.什么是Binlog日 ...
- mysql使用二进制日志恢复数据
本文来说下如何使用mysql使用二进制日志恢复数据,再window的环境下. 文章目录 开启二进制日志 重启mysql服务 配置信息 开启二进制日志 在mysqld的配置节点下添加如下配置 log_b ...
- Canal监听mysql的binlog日志实现数据同步
Canal监听mysql的binlog日志实现数据同步 1. canal概述 1.1 canal简介 1.2 技术选型 1.3 原理分析 1.3.1 MySQL主备复制原理 1.3.2 canal原理 ...
- 使用MySQL的binlog日志恢复误删数据
使用binlog日志恢复误删数据 1.查看binlog是否开启并锁表 # 进入mysql mysql -uroot -proot#查看binlog是否开启 show variables like '% ...
最新文章
- 一台台式计算机的主要配件有哪些,电脑的基本配件有哪些
- C++, C#, Java, VB.NET,到底该选择哪一门语言?
- /opt/hbase/conf 中不能启动hbase_浅谈Hbase在用户画像上的应用
- mysql 实例启动利用binlog恢复_mysql利用binlog进行数据恢复
- einops和einsum:直接操作张量的利器
- 神经网络代码解读_强化学习、联邦学习、图神经网络,飞桨全新工具组件详解...
- [机器学习]关联挖掘算法Apriori和FP-Growth以及基于Spark 实例
- educoder MongoDB 复制集 分片
- delphi 创建一个纯文本文件
- ADS仿真 之 交流仿真和S参数仿真示例
- java 验证码识别_【Java】验证码识别解决方案
- WPF--->Stylet将TextBox修改为圆角
- Python-Cartopy制图学习02-中国2010年5月干旱情况空间制图
- php laravel日志报错,Laravel 文档阅读:错误 日志记录
- G1D5-Intriguing properties of neural networks
- Centos文件上传,并用Compose, Dockerfile部署容器
- 华为5g鸿蒙麒麟,华为5G手机渲染图曝光,鸿蒙+麒麟985+5G基带,参考价格很良心...
- 孙俊 计算机技术资格水平考试,孙俊 - 专家学者 - - 计算机科学与技术 - 中南大学 - 学科服务平台...
- deepin Picked up _JAVA_OPTIONS
- 我们调查了400多位业余摄影家,想搞清楚大爷大妈们的“拍大片江湖”