|> +------+
| 12 |
| 11 |
| 4 |
| 3 |
+------+
4 rows in set (0.00 sec)
insert 闪回完成
可以用mysqlbinlog查看insert.flashback文件: DELETE FROM xtr.t2 WHERE @1=77 / INT meta=0 nullable=1 is_null=0 / at 207
#180327 21:20:37 server>xtr.t2 mapped to number 268 at 251
#180327 21:20:37 server> BINLOG '
NVO6WhMLAAAALAAAAPsAAAAAAAwBAAAAAAEAA3h0cgACdDIAAQMAAUWsybY=
NVO6WiALAAAAKAAAACMBAAAAAAwBAAAAAAEAAgAB//5YAAAAs8f6Pg==
'/!/; DELETE FROM xtr.t2 WHERE @1=88 / INT meta=0 nullable=1 is_null=0 / at 291
#180327 21:20:34 server>xtr.t2 mapped to number 268 at 335
#180327 21:20:34 server> BINLOG '
MlO6WhMLAAAALAAAAE8BAAAAAAwBAAAAAAEAA3h0cgACdDIAAQMAAf0iAeE=
MlO6WiALAAAAKAAAAHcBAAAAAAwBAAAAAAEAAgAB//5jAAAAHMBDmQ==
'/!/; DELETE FROM xtr.t2 WHERE @1=99 / INT meta=0 nullable=1 is_null=0 /
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' / added by mysqlbinlog / /!/;
DELIMITER ; End of log file
/!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE/;
/!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0/;
生成还是binlog文件,把二进制文件一行一行的读出来,反向解析了
安装报错:
[root@mysql MyFlash]# gcc -w pkg-config --cflags --libs glib-2.0 source/binlogParseGlib.c -o binary/flashback
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
解决:
yum -y install glib2-devel
导入报错
[root@mysql binary]# mysqlbinlog binlog_output_base.flashback |mysql -uroot -p'123' -S /tmp/mysql_3306.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1782 (HY000) at line 17: @@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON.
根据官方建议加入--skip-gtids
[root@mysql binary]# mysqlbinlog binlog_output_base.flashback --skip-gtids |mysql -uroot -p'123' -S /tmp/mysql_3306.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1032 (HY000) at line 36: Can't find record in 't2' t2是我需要回滚的表
但加上这个参数还是会报错,但在数据库里查询此时数据已经回滚进去了,第二天在测试就没有这个问题了?
问题:
这是因为找错了position点的位置