mysql8通过binlog恢复数据

参考资料: 通过binlog恢复误update的数据(一)_binlog 恢复update-CSDN博客

记录一次工作中的误删除,使用binlog恢复数据的问题。

1:找到mysql8的binlog文件。

2:把binlog文件转换为初始sql文件

mysqlbinlog -vv --base64-output=decode-rows参数的含义

mysqlbinlog -vv --base64-output=decode-rows 
--start-datetime='2024-02-01 13:49:00' 
--stop-datetime='2024-02-01 13:50:00' binlog文件路径 > 生成的sql文件-vv 显示备注
--base64-output=decode-rows
--start-datetime和--stop-datetime时间筛选

3.把初始文件里面的需要恢复的操作(insert,update)提取出来

## 提取出insert操作grep -A 17 -E  "### INSERT INTO \`数据库名称\`.\`表名\`" 生成的sql文件 > 新增sql文件;## 提取出update操作grep -A 34 -E  "### UPDATE \`数据库名称\`.\`表名\`" 生成的sql文件 > 更新sql文件;

4.把提取出来的新增或者更新sql文件转为为可执行的sql文件

## insert 转换为可执行sql文件sed -i 's/###//g; s/@1=//g; s/@2=//g; s/@3=//g; s/@4=//g; s/@5=//g; s/@6=//g; s/@7=//g; s/@8=//g; s/@9=//g; s/@10=//g; s/@11=//g; s/@12=//g; s/@13=//g; s/@14=//g; s/@15=//g; s/@16=//g; s/SET/VALUES(/g; s|*/|*/,|g; s/--//g; s:/\*.*\*/::g' 新增sql文件;sed -i "s/'00'/'00')/g" 新增sql文件;sed -i 's/) ,/) ;/g' 新增sql文件## update 转为为可执行sql文件sed -i 's/### //g; s/--//g;s:/\*.*\*/::g' 更新sql文件;
sed -i '/WHERE/{:a;N;/SET/!ba;s#WHERE#set#g}' 更新sql文件;
sed -i '/SET/{:a;N;/\n/!ba;s#SET#where#g}' 更新sql文件;
sed -i '/set/{:a;N;/where/!ba;s#@5=#STATUS=#g}' 更新sql文件;
sed -i '/where/{:a;N;/\n/!ba;s#@1=#TASKID=#g}' 更新sql文件;
sed -i '/@/'d 更新sql文件;
sed -i -r 's#(TASKID=.*)#\1;#g' 更新sql文件

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EMNLP 2023精选:Text-to-SQL任务的前沿进展(上篇)——正会论文解读

导语 本文记录了今年的自然语言处理国际顶级会议EMNLP 2023中接收的所有与Text-to-SQL相关(通过搜索标题关键词查找得到,可能不全)的论文,共计12篇,包含5篇正会论文和7篇Findings论文,以下是对这些论文的略…

PDF文件格式(一):新版格式交叉引用表

PDF交叉引用表是PDF的重要组成部分,本文介绍的是新交叉引用表,这种引用表的格式是PDF的obj格式,内容是被压缩存放在obj下的stream中,因此比常规的引用表格式复杂。下面就开始介绍这种交叉引用表的格式和解析的方法: 1…

主动网络安全:成本效率和危机管理的战略方法

如何面对复杂网络攻击的进攻策略以及零信任模型的作用。攻击后反应性网络安全策略的基本步骤,透明度和准备工作。 讨论采用主动网络安全方法的好处,特别是在成本效率和危机管理方面,进攻性安全测试对合规性和零日响应的影响。 组织应该更多…

【C生万物】C语言数据类型、变量和运算符

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…

5-3、S曲线生成器【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容,已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中,需要的S曲线如图1所示,横…

QML用ListView实现带section的GridView

QML自带的GridView只能定义delegate,没有section,类似手机相册带时间分组标签的样式就没法做。最简单的方式就是组合ListViewGridView,或者ListViewFlow,但是嵌套View时,子级View一般是完全展开的,只显示该…

【VUE】UniAPP之uview组件库,自定义tag封装,支持添加u-icon图标

组件代码 <template><view class"tag" :class"[props.mode, props.shape]"><slot name"left"><!-- icon图标 没有传入图标时不显示 --><u-icon v-if"props.icon ! " :name"props.icon" :color&…

【数据分享】1929-2023年全球站点的逐月平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐月平均气温数据、逐月最高气温数据…

说说vue的diff算法

Vue的diff算法 是什么比较方式 – 深度优先&#xff0c;同层比较 比较只会在同层级进行&#xff0c;不会跨层级比较比较的过程中&#xff0c;循环从两边向中间收拢 diff 算法更新的例子原理分析 patchpatchVnodeupdateChildren 小结 Vue的diff算法 此文章&#xff0c;来源于印…

Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接...问题解决方法之一

一、问题描述 将Redis压缩包解压后&#xff0c;安装Redis过程中出现问题Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝&#xff0c;无法连接... 官网windows下redis开机自启动的指令如下&#xff1a; 1、在redis目录下执行 redis-server --service-in…

Java面向对象 创建类 创建对象

目录 创建类类的属性类的方法实例分析 创建对象创建Test类测试分析 创建类 类的属性 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。 属性定义格式&#xff1a; [修饰符] 属性类型 属性名 [默认值] ;类的方法 方法用于定义该类或该类实例…

释放资源的方式

try - catch - finally finally代码区的特点&#xff1a;无论try中的程序是正常执行力&#xff0c;还是出现了异常&#xff0c;最后都一定会执行finally区&#xff0c;除非JVM终止。 作用&#xff1a;一般用于在程序执行完成后进行资源的释放操作&#xff08;专业级做法&#x…