误删数据恢复流程说明

项目场景:使用navicat时,不小心误删除几条数据,需要对数据进行恢复


解决方案:

第一步:保证mysql已经开启binlog,查看命令
如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。
查看binklog是否开启

show variables like '%log_bin%';

查看binlog存放日志文件目录(博主binlog目录为/home/mysql/binlog):

show variables like '%datadir%';

第二步:找到mysqlbinlog

第三步:找到删除时间段的binlog,翻译为sql

mysqlbinlog --base64-output=decode-rows -v --database=数据库名 --start-datetime="2023-01-31 11:43:37" --stop-datetime="2023-01-31 11:43:38" /home/mysql/binlog/mysql-bin.000325 > /home/backup/test1234.sql

第四步:在生成的sql文件同目录下,创建.vbs文件,写入如下内容,并双击执行

function replaceregex(patern,str,tagstr)
dim regex,matches
set regex=new regExp
regex.pattern=patern
regex.IgnoreCase=true
regex.global=true
matches=regex.replace(str,tagstr)
replaceregex=matches
end function'Mysql binlog DELETE转INSERT==========
'VBS打开文本文件
Set oldStream = CreateObject(“ADODB.Stream”)
oldStream.CharSet = “utf-8”
oldStream.Open
oldStream.LoadFromFile(“test1234.sql”) 'binLog生成的DELETE原日志文件
oldText = oldStream.ReadText()
newText=replace(oldText,“### DELETE FROM”, “;INSERT INTO”)
newText=replace(newText,“### WHERE”, “SELECT”)
newText=replace(newText,“###”, “”)
newText=replace(newText,“@1=”, “”)
newText=replaceregex(“@[1-9]=”,newText, “,”)
newText=replaceregex(“@[1-9][0-9]=”,newText, “,”)
oldStream.Close
'VBS保存文件
Set newStream = CreateObject(“ADODB.Stream”)
newStream.Type = 2 'Specify stream type - we want To save text/string data.
newStream.Charset = “utf-8” 'Specify charset For the source text data.
newStream.Open 'Open the stream And write binary data To the object
newStream.WriteText newText
newStream.SaveToFile “mysqllogOK.sql”, 2 'DELETE转成INSERT以后的新的SQL文件名
newStream.Close

第五步:打开生成的mysqllogOK.sql文件,找到insert语句并执行
因为我这里是一条一条删除的,所以需要对数据重新编辑一下

#原sql 从上到下为:主键id,姓名,手机号,身份证,创建时间
INSERT INTO `order_passenger`
SELECT20034,张三,"18866669999","11010119900307635X","2023-01-31 10:09:35" #修改后sql
INSERT INTO `order_passenger` VALUES(20034,张三,"18866669999","11010119900307635X","2023-01-31 10:09:35"
)

【MYSQL】误删数据恢复流程说明相关推荐

  1. win32 mysql误删数据恢复_mysql误删数据恢复

    原创 mysql误删数据恢复我这里搜了一下,貌似好多方法,搜索表后是因为表太多所以看不完所以就看到了这篇文章,你看看你的数据重建了吗?或者点击按钮在目录下的文件恢复? 试试这个,如果没有的话,说明这个 ...

  2. mysql误删数据恢复操作

    第一步:保证mysql已经开启binlog,查看命令: show variables like '%log_bin%'; 查看binlog存放日志文件目录 show variables like '% ...

  3. mysql数据库数据恢复_Mysql数据库delete删除后数据恢复报告

    数据库环境部署与故障原因: 本次恢复的数据库安装在客户本地服务器上,服务器操作系统为windows2008 r2 .在当前环境内安装有mysql5.6单实例,引擎类型为innodb,表内数据存储所使用 ...

  4. oracle如何把误删的数据恢复,oracle误删数据恢复方法小结

    如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Or(www.jb51.cc)acle 9i中提 ...

  5. oracle用户删除了可以恢复吗,oracle_oracle误删数据恢复方法小结,如果用户误删/更新了数据后, - phpStudy...

    oracle误删数据恢复方法小结 如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Or(www. ...

  6. linux mysql 误删系统文件恢复_干货分享丨如何恢复Linux下误删/etc目录数据

    对于运维工作者来说,可能最让人担心的,是服务器宕机: 最让人无助的,是被DDOS: 而最让人心惊肉跳的,是rm -rf *这个命令-- 当你执行rm -rf命令时,万一哪个变量没赋值 听说过被删空服务 ...

  7. oracle误删记录,oracle误删数据恢复方法小结

    如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Or(www.)acle 9i中提供了一项新的技 ...

  8. MySQL 更新执行流程

    MySQL 更新执行流程 上篇讲完了查询流程,再讲讲更新流程 在数据库里面,我们说的update操作其实包括了更新.插入和删除.如果大家有看 过MyBatis的源码,应该知道Executor里面也只有 ...

  9. 阿里云rds mysql数据库数据恢复到ecs中

    背景: aliyun上的rds数据库快满了,于是删除了某个备份的表 后面大boss说是有用的表,需要恢复回来,阿里云有7天内的物理全量备份(通过percona-xtrabackup备份的) 第一时间应 ...

最新文章

  1. Android Priority Job Queue (Job Manager):多重不同Job并发执行并在前台获得返回结果(四)...
  2. 计算机网络实验思考题汇总
  3. python中name没有定义_Python;NameError:未定义名称“handsum”
  4. linux as86,记linux_centOS安装as86过程
  5. 【BZOJ3036】绿豆蛙的归宿 概率DP
  6. 【转】IP Socket知识
  7. 详解:设计模式之-适配器模式
  8. zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
  9. oracle 创建job
  10. 从0开始搭建产品经理AI知识框架:语音识别与合成
  11. 个人工作总结(第一阶段)
  12. php preg_split 正则截取字符串
  13. 101页海康威视-可视化智慧城管系统建设方案(附下载)
  14. Digester简介和使用
  15. python:算术平方根的实现
  16. 微信IPAD协议安卓协议DEMO,登录篇#1
  17. 【高仿微信系列】微信录制小视频
  18. 「GoTeam 招聘时间」滴滴出行系统研发工程师(北京)
  19. ma-云计算 大数据 mapreduce概念和关系
  20. 使用浏览器抓包获取API

热门文章

  1. Redis的ZSET的实现及结合源码的跳跃表结构分析
  2. SpringBoot与MongoDB的集成使用
  3. Java毕业设计_代驾到家服务app的设计与实现
  4. 关于微信小程序异步转同步方法
  5. ad17编辑界面怎么检查未连线_EZCast“未发现装置,请检查网路连线状态”解决办法是什么?EZCast提示“未发现装置,请检查网路连线状态”如何解决?...
  6. QT编译错误:cannot find file: *.pro
  7. Hans Petter Langtangen
  8. 论文笔记 EMNLP 2020|Edge-Enhanced Graph Convolution Networks for Event Detection with Syntactic Relation
  9. 柯洁夺斗地主全国冠军!斗地主可以排解输棋痛苦”
  10. JavaScript---Beacons图片信标发送数据