前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你MySQL“误操作”回魂术

手把手教你MySQL“误操作”回魂术

作者头像
业余草
发布2019-06-22 14:10:52
6500
发布2019-06-22 14:10:52
举报
文章被收录于专栏:业余草业余草

误操作数据库的事情,估计不少开发人员都可能会遇到。毕竟常在河边走,哪有不湿鞋的呢?

640?wx_fmt=png
640?wx_fmt=png

今天,我给大家讲一下 MySQL 中的“误操作”回魂术。不管是你误删除数据,还是插入数据,也或者是更新了数据都可以通过我的方法来解决。

前面我也写过很多删除跑路,恢复数据库等操作的实战,但是有人反馈说,操作起来太难了。所以,我今天给大家推荐一个工具。用它来解决数据库的误操作问题,将大大缩短我们恢复数据的时间和难度。

网上关于 Flashback 的工具其实比较多。大家可以自行的去选择,它们的核心原理都是根据 binlog 日志,把 delete 反向生成 insert、把 update 生成反向的 update、把  insert 反向生成 delete。

而且这些 Flashback 工具,都还有一个共同点,binlog 格式必须为 row 且 binlog_row_image=full。

关于 Flashback 工具,网上开源的有很多,比如:binlog2sql、MyFlash、淘宝彭立勋的 mysqlbinlog 等。今天我主要解释美团的 MyFlash 的使用。

为了方便演示,我们先创建一个测试的表:

640?wx_fmt=png
640?wx_fmt=png

接着我们需要安装一个工具。可以直接下载 MyFlash 的源码,执行下面的命令,进行编译。

640?wx_fmt=png
640?wx_fmt=png

下面,我们可以测试一下插入的回滚操作。

640?wx_fmt=png
640?wx_fmt=png

当我们误操作插入了不想要的数据后,可以执行下面的命令,就可以把插入的数据给干掉了。

640?wx_fmt=png
640?wx_fmt=png

其他的删除,更新操作都一样。就算是混合在一起,只要有 binlog,且格式必须为 row 且 binlog_row_image=full,就可以恢复。所以很多公司的线上环境的 binlog 全部是ROW 模式。

不要小看 binlog,它可是 MySQL 高可用和可靠性的基石。其实,MySQL 有很多功能都是落后的,这也正是 mariadb 等数据库崛起的原因。可以想象,AI 数据库绝对是未来的一个趋势!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档