下载
git clone https://github.com/danfengcao/binlog2sql.git

原理
使用python连接到指定的库,读取要恢复表的表结构和对应的binlog日志,在binlog 为row格式并且DML记录所有字段值的情况下,将set 与where后字段值对换位置,拼接成的SQL就是回滚SQL。

安装
unzip binlog2sql-master.zip
cd binlog2sql-master/
pip install -r requirements.txt

误操作
mysql -uautomng -p'Automng_123' -P3319
update sbtest7 set pad='wa ka ka ' where id=3;
update sbtest8 set pad='wa ka ka ' where id=3;

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000035

# python binlog2sql.py -h127.0.0. -P3319 -uautomng -p'Automng_123' -dtxdb -t sbtest7 sbtest8 --start-file='mysql-bin.000035' --start-datetime='2018-08-01 15:50:00' --stop-datetime='2018-08-01 16:01:00'
UPDATE `txdb`.`sbtest7` SET `c`='39314051591-30329702885-35198042800-16393519874-56867884250-41805987558-63125675500-93376317385-90603675036-63992232134', `k`=, `pad`='wa ka ka', `id`= WHERE `c`='39314051591-30329702885-35198042800-16393519874-56867884250-41805987558-63125675500-93376317385-90603675036-63992232134' AND `k`= AND `pad`='90728107484-01984250703-04244069858-02683578329-82506775849' AND `id`= LIMIT ; #start end time -- ::
UPDATE `txdb`.`sbtest8` SET `c`='22165230283-89382372870-64352117725-29359509089-24558560067-39564369546-34463527363-05997343623-26127428609-19766153460', `k`=, `pad`='wa ka ka', `id`= WHERE `c`='22165230283-89382372870-64352117725-29359509089-24558560067-39564369546-34463527363-05997343623-26127428609-19766153460' AND `k`= AND `pad`='54879921302-82844293345-80647833951-55849410697-97809519145' AND `id`= LIMIT ; #start end time -- :: #start end time -- ::
#start end time -- ::
# python binlog2sql.py --flashback -h127.0.0. -P3319 -uautomng -p'Automng_123' -dtxdb -t sbtest7 sbtest8 --start-file='mysql-bin.000035' --start-position= --stop-position=
UPDATE `txdb`.`sbtest8` SET `c`='22165230283-89382372870-64352117725-29359509089-24558560067-39564369546-34463527363-05997343623-26127428609-19766153460', `k`=, `pad`='54879921302-82844293345-80647833951-55849410697-97809519145', `id`= WHERE `c`='22165230283-89382372870-64352117725-29359509089-24558560067-39564369546-34463527363-05997343623-26127428609-19766153460' AND `k`= AND `pad`='wa ka ka' AND `id`= LIMIT ; #start end time -- ::
UPDATE `txdb`.`sbtest7` SET `c`='39314051591-30329702885-35198042800-16393519874-56867884250-41805987558-63125675500-93376317385-90603675036-63992232134', `k`=, `pad`='90728107484-01984250703-04244069858-02683578329-82506775849', `id`= WHERE `c`='39314051591-30329702885-35198042800-16393519874-56867884250-41805987558-63125675500-93376317385-90603675036-63992232134' AND `k`= AND `pad`='wa ka ka' AND `id`= LIMIT ; #start end time -- ::

回滚
python binlog2sql.py --flashback -h127.0.0.1 -P3319 -uautomng -p'Automng_123' -dtxdb -t sbtest7 sbtest8 --start-file='mysql-bin.000035' --start-position=4 --stop-position=1393 > /tmp/rollback.sql | cat
事务号一定要看清楚并写对了,如果……如果不小心写错了一位数,你可以想象一下后果……
mysql -uautomng -p'Automng_123' -P3319 txdb < /tmp/rollback.sql

在尝试通过远程的方式操作时,失败了,不知是不支持远程还是哪里遇到了问题,正在排查中……如果不能通过远程的方式操作,那么就需要提前在服务器上安装这个脚本。

my10_使用binlog2sql闪回DML操作的更多相关文章

  1. binlog2sql闪回工具的使用

    binlog2sql闪回工具的使用 一.下载安装依赖的python yum install openssl-devel bzip2-devel expat-devel gdbm-devel readl ...

  2. MYSQL工具之binlog2sql闪回操作

    文档结构: 在生产环境中如果遇到误删,改错数据的情况,利用mysql闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取SQL,并能生成回滚SQL语句.Binlog以event作 ...

  3. MySQL的binlog2sql闪回

    从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途=========== * 数据快速回滚(闪回)* 主从切换后新m ...

  4. binlog2sql闪回恢复数据

    用途: .数据快速回滚 .从binlog生成标准sql 使用限制: .必须设置binlog_format=ROW .binlog_row_image=full,该参数默认为FULL .恢复用户拥有的最 ...

  5. 利用binlog2sql闪回丢失数据

        today,i'll using the open source tool named "binlog2sql" which is release by danfengch ...

  6. mysql5.7 闪回数据(update delete insert)

    本次测试用Myflash闪回dml操作,有个前提条件是log_bin开启并且log模式是row: mysql> show global variables like "binlog%& ...

  7. binlog2sql快速闪回

    https://github.com/danfengcao/binlog2sql 一.说明: DML(data manipulation language):       它们是SELECT.UPDA ...

  8. PLSQL_闪回操作1_Flashback Query

    2014-07-02 Created By BaoXinjian

  9. Oracle闪回技术详解

     概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...

随机推荐

  1. Tensorflow学习练习-卷积神经网络应用于手写数字数据集训练

    # coding: utf-8 import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data mn ...

  2. 760. Find Anagram Mappings乱序字符串的坐标位置

    [抄题]: Given two lists Aand B, and B is an anagram of A. B is an anagram of A means B is made by rand ...

  3. c语言实战: 计算时间差

    计算时间差有两种,一种是把时间都转化为分钟数,一种是把时间都转化为小时,后者是会用到除法所以不可避免产生浮点数,所以我们选择转化为分钟数来计算. //题目:给定两个时间点计算它们的时间差,比如,1:5 ...

  4. poj3557 Map Generator

    传送门 题目大意 给定两个数n,p;表示n个点中任意两点连边的概率为p,求生成的图是个连通块的概率 分析 我们发现直接求产生联通块的概率并不容易,于是我们转而考虑计算不能生成联通块的概率,公式如下: ...

  5. Luogu 4552 [Poetize6] IncDec Sequence

    在BZOJ上好像被权限掉了. 考虑差分,定义差分数组$b$ $$b_i = \left\{\begin{matrix} a_i \ \ \ (i == 1)\\ a_i - a_{i - 1}\ \ ...

  6. Python程序设计5——函数

    本章介绍Python中模块和函数的概念. Python程序是由包.模块和函数三者组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合.Python提供的许多工具包和模块安装在Pyth ...

  7. android listview addHeaderView和addFooterView的注意事项

    1. item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的button. imagebutton等控件抢走,从而导致在listview设置了 ...

  8. (树)判断二叉树是否为BST

    题目:判断一颗二叉树是否为BST. 思路:其实这个问题可以有多个解决方法. 方法一:递归解决.根据BST的特性.左边的小于根节点的值,右边的大于根节点的值.并且对于每一棵子树都是如此.所以我们可以直接 ...

  9. leetcode Word Search 待解决?

    终于搞定了这个DFS,最近这个DFS写的很不顺手,我一直以为递归这种东西只是在解重构时比较麻烦,现在看来,连最简单的返回true和false的逻辑关系都不能说one hundred present 搞 ...

  10. HTML5与CSS3基础教程(第8版) PDF扫描版​

    <HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...