实践

利用binlog2sql查询两个binlog之间的SQL:必须是两个binlog日志,指定start-file和stop-file

binlog2sql -h127.0.0.1 -P3309 -udba -p'xxxxxx' -dsakila -t employee --start-file='mysql-bin.000112' --stop-file='mysql-bin.000113' > /tmp/db.sql

利用binlog2sql查询两个binlog之间的闪回SQL:

binlog2sql --flashback -h127.0.0.1 -P3309 -udba -p'xxxxxx' -dsakila -t employee --start-file='mysql-bin.000112' --stop-file='mysql-bin.000113' > /tmp/flashback.sql

美团点评MyFlash工具https://github.com/Meituan-Dianping/MyFlash

http://blog.itpub.net/29987453/viewspace-2151627

数据恢复测试案例DELETE:

1)在sakila库,删除actors表的actor_id < 6的数据

mysql> use sakila;

Database changed

mysql> select * from actors limit 10;

+----------+------------+--------------+---------------------+

| actor_id | first_name | last_name | last_update |

+----------+------------+--------------+---------------------+

| 1 | PENELOPE | GUINESS | 2006-02-15 04:34:33 |

| 2 | NICK | WAHLBERG | 2006-02-15 04:34:33 |

| 3 | ED | CHASE | 2006-02-15 04:34:33 |

| 4 | JENNIFER | DAVIS | 2006-02-15 04:34:33 |

| 5 | JOHNNY | LOLLOBRIGIDA | 2006-02-15 04:34:33 |

| 6 | BETTE | NICHOLSON | 2006-02-15 04:34:33 |

| 7 | GRACE | MOSTEL | 2006-02-15 04:34:33 |

| 8 | MATTHEW | JOHANSSON | 2006-02-15 04:34:33 |

| 9 | JOE | SWANK | 2006-02-15 04:34:33 |

| 10 | CHRISTIAN | GABLE | 2006-02-15 04:34:33 |

+----------+------------+--------------+---------------------+

10 rows in set (0.00 sec)

mysql> show binary logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000005 | 120 |

| mysql-bin.000006 | 120 |

+------------------+-----------+

2 rows in set (0.00 sec)

mysql> delete from actors where actor_id < 6;

Query OK, 5 rows affected (0.00 sec)

mysql> select * from actors limit 10;

+----------+------------+-----------+---------------------+

| actor_id | first_name | last_name | last_update |

+----------+------------+-----------+---------------------+

| 6 | BETTE | NICHOLSON | 2006-02-15 04:34:33 |

| 7 | GRACE | MOSTEL | 2006-02-15 04:34:33 |

| 8 | MATTHEW | JOHANSSON | 2006-02-15 04:34:33 |

| 9 | JOE | SWANK | 2006-02-15 04:34:33 |

| 10 | CHRISTIAN | GABLE | 2006-02-15 04:34:33 |

| 11 | ZERO | CAGE | 2006-02-15 04:34:33 |

| 12 | KARL | BERRY | 2006-02-15 04:34:33 |

| 13 | UMA | WOOD | 2006-02-15 04:34:33 |

| 14 | VIVIEN | BERGEN | 2006-02-15 04:34:33 |

| 15 | CUBA | OLIVIER | 2006-02-15 04:34:33 |

+----------+------------+-----------+---------------------+

10 rows in set (0.00 sec)

mysql> show binary logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000005 | 120 |

| mysql-bin.000006 | 4836 |

+------------------+-----------+

2 rows in set (0.00 sec)

2)确定binlog 确认start position、stop position

[root@prod logs]#mysqlbinlog --base64-output=decode-rows -v -d sakila mysql-bin.000006 > /tmp/delactors.sql

BEGIN

/*!*/;

# at4601#181019 8:40:49 server id 33051132 end_log_pos 4660 CRC32 0x9c986f17 Table_map: `sakila`.`actors` mapped to number 94# at4660#181019 8:40:49 server id 33051132 end_log_pos 4805 CRC32 0x5839b8ff Delete_rows: table id 94flags: STMT_END_F

###DELETE FROM`sakila`.`actors`

###WHERE###@1=1 /*SHORTINT meta=0 nullable=0 is_null=0*/###@2='PENELOPE' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@3='GUINESS' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@4=1139949273 /*TIMESTAMP(0) meta=0 nullable=0 is_null=0*/###DELETE FROM`sakila`.`actors`

###WHERE###@1=2 /*SHORTINT meta=0 nullable=0 is_null=0*/###@2='NICK' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@3='WAHLBERG' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@4=1139949273 /*TIMESTAMP(0) meta=0 nullable=0 is_null=0*/###DELETE FROM`sakila`.`actors`

###WHERE###@1=3 /*SHORTINT meta=0 nullable=0 is_null=0*/###@2='ED' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@3='CHASE' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@4=1139949273 /*TIMESTAMP(0) meta=0 nullable=0 is_null=0*/###DELETE FROM`sakila`.`actors`

###WHERE###@1=4 /*SHORTINT meta=0 nullable=0 is_null=0*/###@2='JENNIFER' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@3='DAVIS' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@4=1139949273 /*TIMESTAMP(0) meta=0 nullable=0 is_null=0*/###DELETE FROM`sakila`.`actors`

###WHERE###@1=5 /*SHORTINT meta=0 nullable=0 is_null=0*/###@2='JOHNNY' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@3='LOLLOBRIGIDA' /*VARSTRING(135) meta=135 nullable=0 is_null=0*/###@4=1139949273 /*TIMESTAMP(0) meta=0 nullable=0 is_null=0*/# at4805#181019 8:40:49 server id 33051132 end_log_pos 4836 CRC32 0xa24d4dbb Xid = 143

COMMIT/*!*/;

# at4836# at4915#181019 8:45:55 server id 33051132 end_log_pos 4962 CRC32 0xf0172e13 Rotate to mysql-bin.000007 pos: 4

COMMIT /*added by mysqlbinlog*//*!*/;

DELIMITER ;

#End of log file

binlog

3)生成闪回binlog_output_base.flashback文件

binlog的偏移量

start-positon=4601

stop-position=4962

[root@prod logs]# flashback --binlogFileNames=/data/mysql_33051/logs/mysql-bin.000006 --start-position=4601 --stop-position=4962

[root@prod logs]# ls

binlog_output_base.flashback

4)闪回数据

[root@cgdb logs]#mysqlbinlog --skip-gtids /data/mysql_33051/logs/binlog_output_base.flashback |mysql -uroot -p -S /data/mysql_33051/run/mysql.sock

验证恢复的数据:

mysql> use sakila;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from actors limit 10;

+----------+------------+--------------+---------------------+

| actor_id | first_name | last_name | last_update |

+----------+------------+--------------+---------------------+

| 1 | PENELOPE | GUINESS | 2006-02-15 04:34:33 |

| 2 | NICK | WAHLBERG | 2006-02-15 04:34:33 |

| 3 | ED | CHASE | 2006-02-15 04:34:33 |

| 4 | JENNIFER | DAVIS | 2006-02-15 04:34:33 |

| 5 | JOHNNY | LOLLOBRIGIDA | 2006-02-15 04:34:33 |

| 6 | BETTE | NICHOLSON | 2006-02-15 04:34:33 |

| 7 | GRACE | MOSTEL | 2006-02-15 04:34:33 |

| 8 | MATTHEW | JOHANSSON | 2006-02-15 04:34:33 |

| 9 | JOE | SWANK | 2006-02-15 04:34:33 |

| 10 | CHRISTIAN | GABLE | 2006-02-15 04:34:33 |

+----------+------------+--------------+---------------------+

10 rows in set (0.00 sec)

actors表的actor_id < 6的数据,已经恢复!

mysql闪回工具下载_MySQL闪回工具之myflash 和 binlog2sql相关推荐

  1. mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL

    概述 一般来说,SQL查询优化器分析给定查询的许多选项,预估每个选项的成本,最后选择成本最低的选项.如果查询优化器选择了错误的计划,则性能差异可能从几毫秒到几分钟.幸运的是,现在有许多第三方SQL查询 ...

  2. mysql数据万能导入工具下载_mysql数据导入工具下载 - 数据导入工具(EMS Data Export for MySQL) v3.7.0多语特别版下载 - 第九软件网...

    EMS Data Export for MySQL多语特别版是一款交叉平台的数据库导入工具,可以快速地从MS Excel 97-2007, MS Access, DBF, XML, TXT, CSV, ...

  3. php mysql 性能测试工具下载_MySQL压力测试工具_MySQL

    bitsCN.com MySQL压力测试工具 mysqlslap --create-schema=example --query="SELECT * FROM group_message f ...

  4. dll修复工具下载,dll修复工具注意事项

    Dll文件的缺失相信很多人都遇见过吧,只要缺失了一个这样的dll文件,我们的游戏或者软件程序就启动不了了,所以我们就需要去修复它,目前修复有几种方法,最简单的,最适合电脑小白的,那就是dll修复工具了 ...

  5. mysql ver 14.14下载_MySQL简介及安装 mysql Ver 14.14 Distrib 5.7.28

    1.MySQL简介 1.数据库产品演变 第一代数据库架构: RDBMS 关系型数据库时代 : 合的时代 代表产品 :Oracle .MSSQL .MySQL.SQL server 第二代数据库架构:拆 ...

  6. mysql更新数据能回滚吗_MySQL数据回滚-误更新和删除时快速恢复

    这世界上有后悔药 – www.houhuiyao.cc 后悔药数据恢复 站长语 前面的内容也提到过update或delete误更新删除了数据后如何恢复.实际生产环境中常常因各种不同场景导致一些办法有效 ...

  7. mysql的回滚机制_mysql事务回滚机制概述

    应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...

  8. mysql卸载工具下载_MySQL的卸载、下载与安装

    MySQL的卸载 1.首先普通卸载方式卸载MySQL软件 2.然后找到安装路径下的MySQL文件夹,将MySQL文件夹删除 3.C盘下有隐藏的Programdata文件夹,找到里面的MySQL文件夹将 ...

  9. mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...

    DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和 ...

最新文章

  1. Matlab与线性代数 -- 矩阵的重组1
  2. c语言程序设计第3周编程作业(数字特征)
  3. Cortex-M3 内部寄存器
  4. 【DND图形库】一、简介与环境配置
  5. Apache Shiro:简化应用程序安全性
  6. oracle 列 连续,sql 查寻某列连续的几个值是否相同
  7. 终于有人做了一款新时代的搜索引擎
  8. 01背包 hihocoder第六周
  9. SQL注入攻击及防御详解
  10. WinForm应用实战开发指南 - 快速开发一个WinForm应用系统
  11. excel图表模板免费下载_40个免费的信息图表模板下载
  12. PS制作视频字幕教程
  13. 设置font标签居中显示
  14. python面向对象编程思想_面向对象编程思想及其特点
  15. 错过直播不用急,回顾小视科技工业级静默活体检测算法解读,视频已备好
  16. JavaScript函子(随笔)
  17. 【Python】cmd指令安装python第三方库的几种方法
  18. JavaScript里面实现12小时制的时分秒转化成24小时制的时分秒
  19. 经典推荐算法之协同过滤
  20. hexo提交报错 unable to access ‘https://github.com/*/*.github.io.git/‘: Couldn‘t resolve host ‘github.com

热门文章

  1. 在Linux和Windows的Docker容器中运行ASP.NET Core
  2. spark java 逻辑回归_逻辑回归分类技术分享,使用Java和Spark区分垃圾邮件
  3. [转]数据结构KMP算法配图详解(超详细)
  4. 贪心算法之高级钟点秘书会议安排问题
  5. linux之vifm和ranger操作文件管理器使用总结
  6. C和C++语言编程里面常用函数或者编程技巧总结(不断更新)
  7. 释放内存软件_原来苹果手机这样清理内存,可以释放大量空间,真是太好用了...
  8. python 读行为数组_python将多列文件读入数组
  9. 不当败家子的原因......
  10. 钟南山团队在患者粪便中检出新冠活病毒,国家卫健委回应!专家:做好这事很重要...