接下来我们开始测试MySQL Fashback工具的使用。
测试Flashback INSERT操作
我们先创建一张表t2,向t2表中插入一条数据,并查看binlog日志的内容,然后接着使用Fashback工具(即-B参数)查看binlog日志的内容及结果
可以看到,binlog中的insert语句被逆向转换成了delete语句。
测试Flashback DELETE操作
这次我们将表t2中的数据删除一条,查看binlog日志中的内容,并使用Fashback工具(即-B参数)查看binlog日志的内容及结果:
可以看到,binlog日志中的delete语句被逆向转换成了insert。
测试Flashback UPDATE操作
既然insert和delete可以完成相互的逆向转换,那么update语句会怎样呢,我们接下来就来测试下update语句,更新表t2中的一条数据,查看对应binlog日志内容,并使用Fashback工具(即-B参数)查看binlog日志的内容及结果:
测试Flashback 整个事务
那么这只是单个事务中,单个DML操作,若在一个事务中既有insert、update、delete语句,那么通过使用Flashback工具后会是怎么样的效果呢,接下来就来测试下:
可以看到,我是在一个事务中完成了insert、update和delete操作,通过使用-B参数后的效果可以看到,不仅三种DML语句完成了逆向转换,并且语句顺序也发生了颠倒。
结论
Flashback工具使用注意点:
binlog日志格式必须是ROW格式;
binlog_row_image参数值需要设置为FULL,若未设置成FULL,Flashback使用就会出错,各位有兴趣可以测试下;
可以将DML操作转换为逆向操作,如:delete转换为insert,insert转换为delete,update转换为逆向的update;
一个事务中的DML语句不仅会逆向转换,并且语句顺序也会发生颠倒;
不支持DDL操作。
binlog日志格式必须是ROW格式;
binlog_row_image参数值需要设置为FULL,若未设置成FULL,Flashback使用就会出错,各位有兴趣可以测试下;
可以将DML操作转换为逆向操作,如:delete转换为insert,insert转换为delete,update转换为逆向的update;
一个事务中的DML语句不仅会逆向转换,并且语句顺序也会发生颠倒;
不支持DDL操作。
欢迎大家加入IMG官方QQ群一起讨论数据库相关问题,Flashback工具已上传到QQ群,欢迎大家下载并进行测试,QQ群号:306706593。
猜你喜欢