实现原理

flashback的概念最早出现于Oracle数据库,用于快速恢复用户的误操作。

flashback for MySQL用于恢复由DML语句引起的误操作,目前不支持DDL语句。例如下面的语句:

DELETE FROM XXX;

UPDATE XXX SET YYY=ZZZ;

若没有flashback功能,那么当发生误操作时,用户只能通过全备+二进制日志前滚的方式进行恢复。通常来说,这样所需的恢复时间会非常长。为了缩短误操作恢复的时间,通常可以在slave上搭建LVM,通过定期快照的方式来缩短误操作的恢复时间。但是LVM快照的缺点是会对slave的性能产生一定的影响。

官方mysqlbinlog命令为解析MySQL的二进制日志。当二进制日志的格式为ROW格式时,可以输出每个操作的每条记录的前项与后项。那么通过逆操作即可进行回滚操作,例如:

原始操作:INSERT INTO ...

flashback操作:DELETE ...

原始操作:DELETE FROM ...

flashback操作:INSERT INTO ...

原始操作:UPDATE XXX SET OLD_VALUES ...

flashback操作:UPDATE XXX SET NEW_VALUES ...

目前flashback功能集成于官方mysqlbinlog命令,通过参数的方式进行flashback功能的开启。

相关参数

-B --flashback

flashback核心参数,回滚二进制日志

root@test-1:~# ./mysqlbinlog -B --base64-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

关于DDL的flashback功能

flashback功能仅支持DML语句的快速恢复,但是如果误操作为DDL的话,那么就无能为力了,比如:

TRUNCATE TABLE  xxx;

DROP TABLE xxxx;

DROP DATABASE xxx;

若要支持上述的快速flashback功能,需要修改MySQL源代码,将删除的库或者表保存到一个垃圾回收的库中,例如$RECYCLE库。想要支持这个功能,可以考虑使用InnoSQL商业版本。

mysql5.7 flashback_Flashback for MySQL 5.7相关推荐

  1. 查看mysql数据库服务_MySQL数据库之mysql5.7基础 查看mysql的服务状态

    本文主要向大家介绍了MySQL数据库之mysql5.7基础 查看mysql的服务状态 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. Operating System:Ubunt ...

  2. 重新安装mysql5.7.21_linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决

    在安装过程中所遇到的问题有: 1.my-default.cnf文件找不到 2.mysql启动报错 3.mysql临时密码无法登录 安装环境centos 6.0 下载数据库: [root@CLangua ...

  3. centos mysql5.6.35_centos6.8 mysql 5.6.35 glibc安装

    # 虚拟机->文件->打开-> 选择*.vmx # 用户名:root # 密码:123456 # 2G 内存 # 4 处理器 # 固定IP为192.168.1.181 ## 修改IP ...

  4. linux快速mysql5.7_Linux下安装MySQL 5.7

    本次分享如何在Linux下安装MySQL 5.7 操作系统版本:RedHat/CentOS 6.6 X64 MySQL版本:5.7.11 安装方式:二进制 安装过程: [root@gusha2~]#  ...

  5. mysql5.7.76安装,MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)

    楔子 由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标 ...

  6. mysql.gtid executed_【20180608】MySQL5.7新增表mysql.gtid_executed

    MySQL5.7新增表mysql.gtid_executed MySQL5.6主从,从库获取gtid_executed 在MySQL5.6的时候,主从复制开启了GTID,在slave执行show sl ...

  7. mac mysql5.7 my_【mysql】Mac下安装mysql5.7 完整步骤,大坑已解决

    最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.17. 1.官网下载 点 ...

  8. mysql 5.7直接安装版,mysql5.7怎么安装 mysql 5.7安装图文教程

    mysql5.7已经发布很多了,近期迎来了大更新,新增了相关的功能,同时修复了已知bug,很多想要使用mysql5.7的伙伴们,发现下载后却不会安装,那么,mysql5.7怎么安装呢?这里小编为大家讲 ...

  9. 如何安装mysql5.7.21_Linux 安装MySql 5.7.21 操作步骤

    一:到mysql官网下载最新的mysql包 mysql-5.7.21-linux-glibc2.12-x86_64 二:在linux /usr/local/中解压mysql压缩包 改名为mysql c ...

最新文章

  1. android init.rc语法标准 .
  2. nginx php返回500错误,nginx环境thinkphp,500错误
  3. 编程生涯 21 载,那些我踩过的坑
  4. java之简单的Callback使用总结
  5. HDU - 6975 Forgiving Matching FFT匹配字符串
  6. 文档主题分类项目Python代码
  7. mysql脚本执行中文乱码_MySQL从命令行导入SQL脚本时出现中文乱码的解决方法
  8. Flex3 Chart学习笔记:PieChart(饼图)
  9. joomla 3.6 mysql 版本_在RHEL,CentOS和Fedora上安装Joomla 3.6使用LAMP(Linux,Apache,MySQL,PHP)...
  10. rust投递箱连接箱子_海门市围板箱定制围板箱内衬
  11. 手机技巧之扩展内存的检测以及修复。
  12. Linux 内存管理 | 连续分配方式 和 离散分配方式
  13. java则么实现md5解密_java的md5解密
  14. 使用IDA对ipa进行反编译
  15. Bebras挑战样题之五——警察能抓住海盗吗?
  16. Google Earth Engine——美国人口数据可视化分析
  17. 矩阵Kronecker(克罗内克)积
  18. 如何在Android Studio中设置*md文件打开方式
  19. C语言转义字符,注释
  20. 双边滤波(bilateral filter)以及联合双边滤波(joint bilateral filter)

热门文章

  1. Nignx优化与防盗链
  2. 析构函数和this指针
  3. 【汇智学堂】-JS菜鸟版过河小游戏(之十---精简代码,完整版)
  4. lexaiduer psd_简约自然风清新零食早餐麦片食品燕麦详情_psd素材免费下载_ 790*6368像素(编号:24565017)...
  5. VB连接数据库时出现“ActiveX部件不能创建对象”
  6. Educational Codeforces Round 113 (Rated for Div. 2) ABCD 解题思路
  7. 成为Java高级架构师必看的15本书
  8. 关于联想y7000P电脑有线和无线网自动断掉且需要重启才可以连接的问题
  9. 数码相框项目之触摸屏模块
  10. 富文本编辑:wangEditor使用教程