mysqlbinlog恢复误删数据

概述

  代码bug,在处理上传出现异常时执行了DELETE FROM t_resource WHERE resource_id = ? OR parent_id = ?因为OR条件导致用户的上传的所有数据被清空了。

show

  查看是否有开启log-bin备份

show variables like 'log_bin'

 

 欣慰的是,已经开启了二进制日志备份。那接下来就简单多了,找到这个二进制日志,找到这个节点,去恢复它。执行这个命令,查看正在写入的二进制日志是哪个文件

show master status

 当然也可以flush重新开始一个文件写入。用这个文件名在Linux全局搜下这个文件在哪==> find / -name mysql,找到这么久好办了。

mysqlbinlog

mysqlbinlog -vv --start-datetime='2019-9-24 11:24:00' --stop-datetime='2019-9-24 11:25:20' mysql-bin.000211| grep "t_resource" | more

查看里面执行删除操作的pos位置

 

 然后去查看从哪里开始执行了删除

show binlog events in 'mysql-bin.000211'

 

 知道了开始和结束的节点,恢复数据就很快了,因为logbin是二进制日志,我们把它弄成我们看得懂的

mysqlbinlog -vv --start-position=956859551 --stop-position=956863056 mysql-bin.000211 |grep ^"###" >bin_1448

就生成了一个bin_1448文件。我们打开看下

 

 这个就是执行delete删除的东西

INSERT

接下去就是把它反过去变成insert语句就OK了

cat bin_1448 | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@6.*),/\1;/g' | sed 's/@[1-9]=//g' | sed 's/@[1-9][0-9]=//g' >resource.sql

打开,resource.sql 就是我们很多眼熟的sql语句了。。调整执行就很简单了

 

 总结

  以上只能对delete的误操作有效,而且binlog是行模式,如果是truncate的语句造成,那只能祈祷有备份文件了。

参考

https://yq.aliyun.com/articles/664444

 

转载于:https://www.cnblogs.com/dslx/p/11578972.html

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

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

相关文章

Quartz.NET 架构与源代码分析系列 part 1 :Quartz.NET 入门

概述 作业调度的目标在于按照预先确定的时间和指定的顺序来确保高效的数据处理流程,从而最大限度的使用系统资源。批处理流程是一种在无需最终用户干预的方式下在后台通过顺序方式运行的操作。 Windows XP系统也自带了“任务计划”,它是一个简单任务调度…

博弈论——关于Nim游戏和SG函数的几个链接

今天做了一道博弈论的题目,正好去找找相关资料再复习一下。 网上能找到的都是同样的文章,不过我觉得足够了,Nim游戏百度百科里说的很详细,包括公式、证明之类的 http://baike.baidu.com/view/1101962.htm 而对于SG函数&#xff0c…

【讨论】新一轮互联网的泡沫即将破灭,大量低级别的码农将被淘汰

最近看到BAT减少招聘,互联网企业倒闭潮开始。今年的营收额应该也有很大程度的下降,然后我进行了深刻的思考,我觉得新一轮的互联网泡沫将会破灭,行业面临新的洗盘。 虽然现在互联网行业还是如火如荼的进行,很多人没有感…

Request登录案例

一、分析和设计 1、需求 2、页面 3、druid连接池 4、jar包 5、需求设计 二、代码实现 1、web_WEB-INFO_lib使用之前要先将jar包加入工作空间, 2、JDBC工具类 3、Dao层持久化层 其中,有异常除了输出控制台日志,还可以输出流写入到一个文件中记…

Combine two strings into one.

CONCATENATE str_tmp % into str_tmp. 转载于:https://www.cnblogs.com/gangjing/archive/2009/03/13/1410623.html

基于winpcap的NDIS在IE浏览器,360安全浏览器hackwww.360.cn

winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。winpcap 驱动各项功能1. 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数…

斑马Zebra驱动下载

Zebra GT800 点击进入下载页-> 自动安装包【WINXP/WIN7/WIN8】点击进入下载页-> 添加打印机向导【WINXP/WIN7/WIN8】热门下载 Zebra GK888t Zebra 888-TT/888-DT Zebra 105SL Zebra ZM400 Zebra TLP 2844 Zebra GT800 Zebra GK888d Zebra LP 2844 Zebra Z4Mplus Zebra S4…

HTTP响应消息

一、数据格式 二、相应行状态码 其中,304常见于请求图片,一个图片就是一次请求,但是后面再请求若服务器图片没有修改,则304,访问本地缓存; 500一般见于服务器代码异常,如3/0; 三、响…

javafx如何调节按钮位置_安全带高度调节器的小知识

对于开车的小伙伴对安全带已经再熟悉不过了,但是有很多车,在安全带上有一个小秘密,那就是高度调节器。高度调节器的作用:为了调节安全带上固定点的高度,使安全带能够适应不同体格的乘员,都能达到最好的保护…

『程序员』 [程序人生]程序员几种不同的境界

五流程序员比技术和工具   五流程序员关心的是用什么工具可以产生什么结果,追逐他听过最新、最好、最时髦的技术,沉浸于一些小练习,却很少走出象牙塔和客户或市场进行真正的沟通,甚至完成大型的真实案例。      四流程序员…

仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ

1.txt转换swf,发生中文乱码。 txt转换为utf-8编码,或txt格式手动改为odt,上传就不会发生乱码。从根源上解决,暂时就算了...暂时不想去纠结这些鸡毛。 2.加密的pdf可能导致转换为swf失败。 3.Microsoft Excel在公式运算中支持文本型…

C语言--在终端输入多行信息,找出包含“ould”的行,并打印改行

问题:在终端输入多行信息,找出包含“ould”的行,并打印改行。如:Au,love could you and I with fate conspireTo grasp this sorry scheme of things entire,Would not we shatter it to bitd – and then.在终端输出上述的文字&a…

Response对象

一、输出流返回响应数据 二、重定向 1、重定向代码以及和转发的区别 2、相对路径 ./ 和 / 都是表示当前路径下 3、绝对路径 三、Response输出数据 1、字符输出流 其中,浏览器打开默认和操作系统使用一样的GBK编码字符集(国标码,中文&#xf…

combox 增加请选择_本命佛怎么请?

佛,从古到今都是人们在憧憬美好未来时一种精神上的象征,它能为世间众生带来好运。而我们所知道的本命佛是与十二生肖属相感应力较强的佛,佩戴与自己生肖相对应的本命佛具有增加财运,保佑健康平安、守护家庭和睦的作用。所以很多人…

使用事务

/// <summary> /// 执行事务操作 /// </summary> /// <param name"sql">字符串数组用来存储需要执行的sql语句</param> /// <returns>返回一个布尔值&#xff0c;表示是否操作成功</returns> public static bool…

C++开源跨平台类库集

C开源跨平台类库集在如下的库支持下&#xff0c;开发的系统可以很方便移植到当前大部分平台上运行而无需改动&#xff0c;只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C库 STLport-------SGI STL库的跨平台可移植版本&#xff0c;在以前有些编译器离符合 …

javascript调试常用工具讲解

1、Console命令详解,让调试js代码变得更简单 2、《Firebug入门指南》转载于:https://www.cnblogs.com/douglas0126x/p/4906271.html

cap理论具体含义_分布式系统:CAP 理论的前世今生

CAP 理论是分布式系统设计中的一个重要理论&#xff0c;虽然它为系统设计提供了非常有用的依据&#xff0c;但是也带来了很多误解。本文将从 CAP 诞生的背景说起&#xff0c;然后对理论进行解释&#xff0c;最后对 CAP 在当前背景下的一些新理解进行分析&#xff0c;澄清一些对…

Android-i9023 Root

1. 下载http://bigota.d.miui.com/tools/miui_ns.zip 2. 下载 http://android.clients.google.com/packages/ota/google_crespo/1ada25375426.signed-soju-ota-189904.1ada2537.zip http://android.clients.google.com/packages/ota/google_crespo/VQ8PQk_V.zip Superuser-3.0.…

【转】详细解析Java中抽象类和接口的区别

在Java语言中&#xff0c; abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在&#xff0c;才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性&#xff0c;甚至可以相互替换&#xf…