这篇文章主要介绍“MySQL的FLASHBACK数据回滚是什么”,在日常操作中,相信很多人在MySQL的FLASHBACK数据回滚是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL的FLASHBACK数据回滚是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
数据库的里面的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 ,时间点, 日志的范围等等进行相关数据的提取。
所以有了这个工具,基本上大部分的误操作都能进行数据的找回和恢复。
到此,关于“MySQL的FLASHBACK数据回滚是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。