my10_使用binlog2sql闪回DML操作
下载
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操作的更多相关文章
- binlog2sql闪回工具的使用
binlog2sql闪回工具的使用 一.下载安装依赖的python yum install openssl-devel bzip2-devel expat-devel gdbm-devel readl ...
- MYSQL工具之binlog2sql闪回操作
文档结构: 在生产环境中如果遇到误删,改错数据的情况,利用mysql闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取SQL,并能生成回滚SQL语句.Binlog以event作 ...
- MySQL的binlog2sql闪回
从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途=========== * 数据快速回滚(闪回)* 主从切换后新m ...
- binlog2sql闪回恢复数据
用途: .数据快速回滚 .从binlog生成标准sql 使用限制: .必须设置binlog_format=ROW .binlog_row_image=full,该参数默认为FULL .恢复用户拥有的最 ...
- 利用binlog2sql闪回丢失数据
today,i'll using the open source tool named "binlog2sql" which is release by danfengch ...
- mysql5.7 闪回数据(update delete insert)
本次测试用Myflash闪回dml操作,有个前提条件是log_bin开启并且log模式是row: mysql> show global variables like "binlog%& ...
- binlog2sql快速闪回
https://github.com/danfengcao/binlog2sql 一.说明: DML(data manipulation language): 它们是SELECT.UPDA ...
- PLSQL_闪回操作1_Flashback Query
2014-07-02 Created By BaoXinjian
- Oracle闪回技术详解
概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...
随机推荐
- C++面向对象类的实例题目十一
题目描述: 写一个程序计算三角形,正方形和圆形3种图形的面积 程序代码: #include<iostream> #include<cmath> #define PAI 3.14 ...
- MinGW lapack 在windows 上安装
MinGW基本的配置环境 编译安装 方案一:MinGW Makefiles 我的配置好之后mingw文件夹下没有mingw32-make.exe,使用 mingw-get install mingw3 ...
- latex公式怎么变成图片格式
由于这几天正在复习高中的数学,想写一些博客记录一下,发现数学公式的输入是一个问题,后来知道了latex,去youtube学习了一点入门教程发现挺简单的,不过有一个问题,latex生成的是pdf格式啊, ...
- 一个ButtonDemo的实现过程。
来自JDK API 1.6.0: Try this: Click the Launch button to run the Button Demo using Java™ Web Start (dow ...
- DIY的RPM包怎么签名呢 How to sign your custom RPM package with GPG key
https://gist.github.com/fernandoaleman/1376720 How to sign your custom RPM package with GPG key 这是文 ...
- 《Linux内核设计与实现》读书笔记(六)- 内核数据结构
内核数据结构贯穿于整个内核代码中,这里介绍4个基本的内核数据结构. 利用这4个基本的数据结构,可以在编写内核代码时节约大量时间. 主要内容: 链表 队列 映射 红黑树 1. 链表 链表是linux内核 ...
- SQL SERVER 取本月上月日期
select dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())) /*上个月一号*/ s ...
- Unity串口通信
一.串口简介 串行接口(串口)通常指COM接口,是采用串行通信方式的扩展接口.串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接 ...
- 读取txt里面的数据进行计算
双在论坛上找到一个问题,有关读取txt里面的数据进行计算的问题. 尝试解决这个问题,获取每一行的X和Y的浮点数据即可.读取文本文件每一行,判断是否为空行,是否符以分隔符号(,)分隔的两个数值.每个数值 ...
- c++ 委托构造函数
#include<iostream> ; using namespace std; class Cbox{ int a ; int b ; int c ; public: int g ; ...