前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL误删恢复方法1

MySQL误删恢复方法1

原创
作者头像
雪人
发布2022-11-14 14:33:21
7110
发布2022-11-14 14:33:21
举报
文章被收录于专栏:DataOps

MySQL不同于oracle,没有闪回查询这类概念,但网上流传几个闪回的开源工具如 binglog2sql、MyFlash,可以使用binglog日志进行误操作数据的恢复。

笔者以前测试过 binglog2sql,发现安装配置比较复杂不太友好。

本次测试了下 MyFlash 这个开源工具,发现相对简单易用,特此做一个使用记录。

MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。

■ MyFlash 安装

代码语言:txt
复制
下载:
wget https://github.com/Meituan-Dianping/MyFlash/archive/refs/heads/master.zip
解压缩、动态编译链接:
unzip master.zip && cd MyFlash-master
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback

如编译时遇到复杂难解问题,可以换机器编译操作!

■ 执行闪回操作

默认会将闪回结果存放到 binlog_output_base.flashback

代码语言:txt
复制
./flashback --databaseNames=dbname --tableNames=tblname --sqlTypes='DELETE' --start-datetime="2022-10-27 16:54:00" --stop-datetime="2022-10-27 18:27:00" --binlogFileNames=binlog.000288

■ 确认是否想要的恢复操作

代码语言:txt
复制
mysqlbinlog --no-defaults --base64-output=decode-rows -vv binlog_output_base.flashback | grep "INSERT" | wc -l

可见有大约 9864 个 insert 操作,对应误删时段的 delete 操作

■ 应用闪回日志恢复误删

代码语言:txt
复制
mysqlbinlog binlog_output_base.flashback | mysql -u'root' -p'passwd'

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ■ MyFlash 安装
  • ■ 执行闪回操作
  • ■ 确认是否想要的恢复操作
  • ■ 应用闪回日志恢复误删
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档