前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 的FLASHBACK 数据回滚

MySQL 的FLASHBACK 数据回滚

作者头像
AustinDatabases
发布2019-06-21 16:35:53
3.1K0
发布2019-06-21 16:35:53
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

数据库的里面的FLASHBACK 功能是一个让人刮目相看的功能,如果你做错了什么怎么能将那段时间的数据恢复,并且还让生产的应用不停止,这是一个数据库管理员都想拥有的功能, SQL SERVER 需要借助第三方软件的功能,可以完成数据的回滚和恢复,ORACLE 独有的FLASHBACK 功能,以及POSTGRESQL 的pg_dirtyread 功能,都可以从某些方面来进行数据的回滚和数据的找回。

当然基本上如果你对你的表进行了 TRUNCATE TABLE的操作则是不能对数据进行找回的,原理就不多说了。

MYSQL的数据找回和回滚使用的是BINLOG2SQL 这个开源的工具,其中的原理如果你懂得MYSQL的binlog 原理,则你会很快明白其可以恢复数据的方式。

这里我们可以做一个实验:

我们可以建立一个数据库 ttt ,并在库中建立一个表 ttt ,在表中建立一个字段 create table ttt (id int)

然后我们在数据库中进行相关的操作

插入操作

insert into ttt (id) values (1),(2),(3);

update 操作

update ttt set id = 2 where id = 1;

delete 操作

delete from ttt where id = 2

如果你想产生回滚的语句,直接在 上图语句的后面添加 flushback

大家可以观察上图,通过上图可以理解 BINLOG 语句的记录模式

1 无论你如何插入数据,是批量还是,单条插入,在BINLOG 里面都会逐条解析你插入的记录

2 你UPDATE 或者 DELETE 数据表一条语句多条数据的情况下,也是对每一条数据进行一个数据的记录

一句话所有的记录都是根据行来记录,而不是逻辑语句。

同时这个工具可以根据你的pos ,时间点, 日志的范围等等进行相关数据的提取。

所以有了这个工具,基本上大部分的误操作都能进行数据的找回和恢复。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

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

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

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