目前flashback功能集成于官方mysqlbinlog命令,通过参数的方式进行flashback功能的开启。
相关参数-B --flashback
flashback核心参数,回滚二进制日志
root@test-1:~# ./mysqlbinlog -B ---output=decode-rows -vv /mdata/mysql_data_old/bin.000008
......-A --skip_database
解析BinLog时过滤掉该数据库。
-a --skip_table
解析BinLog时过滤掉该表,一般与skip_datebase配套使用。
-O --split-size-interval
将BinLog文件按照指定的大小拆分为多个段,解析结果为打印每个段的起始offset位置。
注意,当进行flashback时,flashback的内容先保存在内存中。若你的binlog大小为10G,那么需要额外的10G内存先暂时保存这部分信息。在某些情况下,如云环境、或服务器内存较小,会导致无法输出flashback的日志。这时可以通过此参数来设置内存保存文件的大小,例如将此值设置为100M,那么每100M就会刷新到一个文件。
-D --datetime_to_pos
基于输入的时间信息,解析出该时间对应的第一个BinLog event偏移位置,格式参照start-datetime,
flashback时要先找到起始的偏移量,DBA可以先通过此参数定位到具体位置,然后再进行flashback操作。
-T --table
仅解析该表,一般与database配套使用。
-E --fb_event
仅解析该类型的Log event,一般与database、table选项配套使用。可选的值有:
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
flashback功能仅支持DML语句的快速恢复,但是如果误操作为DDL的话,那么就无能为力了,比如:
TRUNCATETABLExxx;
DROPTABLExxxx;
DROPDATABASExxx;
若要支持上述的快速flashback功能,需要修改MySQL源代码,将删除的库或者表保存到一个垃圾回收的库中,例如$RECYCLE库。想要支持这个功能,可以考虑使用InnoSQL商业版本。
操作视频
视频是最好的文档
下载地址
点击下方阅读原文下载flashback工具,如需技术支持,可微信联系:82946772。
转发文章,手有余香。点击广告,来年加薪
姜承尧
猜你喜欢