MySQL闪回-binlog2sql】的更多相关文章

功能 提取SQL 生成回滚SQL     限制: mysql server必须开启,离线模式下不能解析binlog. binlog格式必须是row模式. flashback模式只支持DML,DDL将不做输出. flashback模式,一次性处理的binlog不宜过大,不能超过内存大小(有待优化). binlog2sql强烈依赖于MySQL复制协议,如果复制协议发生改变,则该工具将不可用.     安装   如果服务器不能上网,安装方法: 安装setuptools 下载地址:http://pypi…
生产上误删数据.误改数据的现象也是时常发生的现象,作为 DBA 这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太大,成本也大.当然还有其他的一些操作方法,这里暂不展开来讲,我们今天有主角. 最近有些朋友在用大众点评开源的一个 MySQL 闪回工具 -- binlog2sql,因此也测试了一把,一探究竟. 用途 数据回滚 主从切换后数据不一致的修复 从 binlog 生成标准 SQL,带来的衍生功能 官方文档:…
生产上误删数据.误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太大,成本也大. 当然还有其他的一些操作方法,我们今天有主角. MySQL 闪回工具 --   binlog2sql 用途 数据回滚 主从切换后数据不一致的修复 从 binlog 生成标准 SQL,带来的衍生功能 闪回原理简析 开始之前,先说说闪回.我们都知道 MySQL binlog 以 event 为单…
MySQL闪回工具之:binlog2sql  https://github.com/danfengcao/binlog2sql MYSQL Binglog分析利器:binlog2sql使用详解  :http://blog.itpub.net/27067062/viewspace-2135398/ 实践 利用binlog2sql查询两个binlog之间的SQL:必须是两个binlog日志,指定start-file和stop-file binlog2sql -h127.0.0.1 -P3309 -u…
一.binlog2sql 1.1 安装binlog2sql git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple binlog2sql参数 # python binlog2sql/binlog2sql.py --help 选项 mysql连接配置 -h…
本文将介绍闪回原理,给出笔者的实战经验,并对现存的闪回工具作比较. DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至需要停机维护,并不适合快速回滚.也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能. MySQL闪回(flashback)利用binlog直接进行回滚,能快速恢复且不用停机.本文将介绍闪回原理,给出笔者的实战经验,并对现…
0.闪回技术与工具简介 mysql闪回工具比较流行三大类: [0.1]官方的mysqlbinlog:支持数据库在线/离线,用脚本处理binlog的输出,转化成对应SQL再执行.通用性不好,对正则.sed等需要较高熟练度. [0.2]第三方的mysqlbinlog工具,比官方的工具多了一个闪回功能 -B [0.3]开源的binlog2sql:兼容性比较好,使用难度小,使用简单,前提是mysql必须开启. 最佳实践:线上使用binlog2sql,线下用mysqlbinlog以及mysqlbinlog…
利用MySQL闪回技术恢复误删除误更改的数据 笔者相信很多人都遇到过忘带where条件或者where条件漏写了一个和写错了的情况,结果执行了delete/update后把整张表的数据都给改了.传统的解决方法是:利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是此方法有一个弊端,那就是随着表的记录增大,binlog的增多,恢复起来会很费时费力. 现在有一个简单的方法,可以恢复到误操作之前的状态.听起来这方法似乎利用的是Oracle的闪回功能,但MySQL目前(包括最新的V5.7…
1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包. 2. 安装 1 2 3 4 5 6 7 # yum install python-setuptools -y # rpm -ivh python-pip-7.1.0-1.el6.noarch.rpm   --rpmfind.net 下载上传安装 # pi…
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至需要停机维护,并不适合快速回滚.也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能.现在有不少好用而且效率又高的开源闪回工具如binlog2sql.mysqlbinlog_flashback,这些工具在工作中给DBA减轻了不少痛苦,以下针对binlog2sql的使用进行实践演练. bin…
由于前面出现过几个需求,或者误操作,或者测试,需要我把某张表恢复到操作之前的一个状态,前面在生产中有过几次经历,实在太痛苦了,下面是一张表被误删除了,我的步骤是: 1  用全备恢复整个库(恢复到其他环境) 2  找到全备结束时间点对应的binlog,然后根据时间找对应的pos点 3  接着2中的pos点把数据往后刷,直到刷到误操作之前的时间点. 3  在这套全新库中将表导出,然后在现有生产库导入 上面的动作存在一个问题,前提是我在误操作到发现的这个时间段,这个表没有数据写入,不然肯定会有数据不一…
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 1.闪回实现原理 2.binlog文件格式初探 3.闪回实现过程 1.闪回实现原理 闪回的业务价值是,在DBA执行错误的数据提交操作之后,还能把数据恢复还原到之前某个时刻的状态,最大程度地挽回损失. 在MySQL中,binlog文件主要用于主从同步二进制数据日志.当主服务器数据发生变更时,会把变动明细持久化到binlog文件中,此时从服务器通过拉取并解析binlog文件,实现数…
use HTTP::Date qw(time2iso str2time time2iso time2isoz); use POSIX; my $SDATE = strftime("%Y-%m-%d",localtime()); if ( $#ARGV < 4 ){ print "please input like binglog-0001 '2013-07-01 00:00:00' '2013-07-02 00:00:00' dml db_name table!\n&q…
从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途=========== * 数据快速回滚(闪回)* 主从切换后新master丢数据的修复* 从binlog生成标准SQL,带来的衍生功能 项目状态===正常维护.应用于部分公司线上环境. * 已测试环境    * Python 2.7, 3.4+    * MySQL 5.6, 5.7 安装============== ```shell> git clone ht…
文档结构: 在生产环境中如果遇到误删,改错数据的情况,利用mysql闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取SQL,并能生成回滚SQL语句.Binlog以event作为单位记录数据库变更的数据信息,闪回就是可以重现这些变化数据信息之前的操作.也就是说,对于insert操作,会生成相反的update语句.这块工具只能使用在binlog格式为row模式下,且只支持DML语句不支持DDL语句. binlog2sql下载地址:https://github.com/dan…
mysql两份日志: binlog :server innodb redo log:engine 两份日志顺序一致性:否则主备不一致 两份日志:原子性,同时都有,同时都无 2PC二阶段协义: 第一阶段:准备界段 第二阶段:提交阶段 买房子示例 准备界段: 房产局确认: 买方:钱是否准备好 卖方:房子是否可卖 提交界段: 政务中心: 买方: 确认按手印 卖方:确认按手印 ----------------------------------------------------------------…
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 3306π 福州站,以下内容是由万里数据库,研发工程师唐洁分享的MySQL闪回方案完整PPT. Enjoy GreatSQL 文章推荐: GreatSQL MGR FAQ https://mp.weixin.qq.com/s/J6wkUpGXw3YkyEUJXiZ9xA 万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预 https://mp.weixin.qq.com/s/07o1poO44zwQIva…
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至需要停机维护,并不适合快速回滚.也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能.现在有不少好用而且效率又高的开源闪回工具如binlog2sql.mysqlbinlog_flashback,这些工具在工作中给DBA减轻了不少痛苦,以下针对binlog2sql的使用进行实践演练. bin…
1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包. 2. 安装 1 2 3 4 5 6 7 # yum install python-setuptools -y # rpm -ivh python-pip-7.1.0-1.el6.noarch.rpm   --rpmfind.net 下载上传安装 # pi…
用途: .数据快速回滚 .从binlog生成标准sql 使用限制: .必须设置binlog_format=ROW .binlog_row_image=full,该参数默认为FULL .恢复用户拥有的最小权限集合为:select, super/replication client, replication slave 建议授权 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 权限说明 select:需要读取server端i…
binlog2sql闪回工具的使用 一.下载安装依赖的python yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel yum install python34 -y python3 --version wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py python3 get-pip.py p…
https://github.com/danfengcao/binlog2sql 一.说明: DML(data manipulation language):       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language):       DDL比DML要多,主要的命令有CREATE.ALTER.DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型…
在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作,sed相关命令也比较复杂.如果没有正则基础的同学肯定搞不清楚在干嘛.今天无意中发现淘宝的大神(翻译高性能mysql第三版的作者之一)开发了一个补丁,该补丁能够模拟Oracle的闪回操作,这样以来我们的MySQL也可以实现闪回咯.真是给力.注意:同样binlog格式需要是ROW 项目主页:http:…
1. 简介 mysqlbinlog flashback(闪回)用于快速恢复由于误操作丢失的数据.在DBA误操作时,可以把数据库恢复到以前某个时间点(或者说某个binlog的某个pos).比如忘了带where条件的update.delete操作,传统的恢复方式是利用全备+二进制日志前滚进行恢复,相比于传统的全备+增备,flashback显然更为快速.简单. 目前MySQL的flashback功能是利用binlog完成的,第一个实现该功能的是阿里云的彭立勋, 他在MySQL 5.5版本上就已实现,并…
MariaDB10.3新特性--闪回查询 System-Versioned表特性的引入,可以对表进行闪回.完成类似于Oracle的闪回查询. 修改已有表为System-Versioned MariaDB [zsd]> alter table test with system versioning; MariaDB [zsd]> select * from test; +------+-----------+ | id | name | +------+-----------+ | 1 | 张盛…
binlog2sql 从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途 数据快速回滚(闪回) 主从切换后新master丢数据的修复 从binlog生成标准SQL,带来的衍生功能 项目状态 正常维护.应用于部分公司线上环境. 已测试环境 Python 2.7, 3.4+ MySQL 5.6, 5.7 安装 shell> git clone https://github.com/danfengcao/binlog2…
转自 https://github.com/danfengcao/binlog2sql,感谢作者的提供 binlog2sql 从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途 数据快速回滚(闪回) 主从切换后新master丢数据的修复 从binlog生成标准SQL,带来的衍生功能 项目状态 正常维护.应用于大众点评线上环境.线上环境的操作,请在对MySQL相当熟悉的同学指导下进行 已测试环境 Python 2.…
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.实验环境 2.软件下载 3.开始测试 4.附参数说明 生产上发生误删数据或者误更新数据的事故时,传统恢复方法是利用备份重搭实例,再应用binlog来恢复数据,有时候需要找回的数据条数非常少,却要恢复几十甚至上百G的备份,费时费力. 那有没有像oracle一样的可以闪回的方式来方便的恢复数据呢,答案是有的.我们MySQL有binlog,binlog以event的形式,记录了MySQL server从启用binlog以…
Ⅰ.背景 早先操作数据误操作后,我们一般通过全量备份+binlog的方式来实现恢复(前滚) 有时只想撤销一个几分钟前的操作,采用这种方式就会显得很笨重 大家都知道Oracle有个叫做flashback的功能,很遗憾MySQL官方并没有提供类似的工具 但姜老师的innosql中实现了这个功能,而且还兼容官方MySQL,目前支持到5.7版本 Ⅱ.玩两手 关注微信公众号:InsideMySQL,找姜老师要下压缩包即可,直接解压,开箱即用,方便快捷 [root@VM_0_5_centos flashba…
本次测试用Myflash闪回dml操作,有个前提条件是log_bin开启并且log模式是row: mysql> show global variables like "binlog%"; +--------------------------------------------+--------------+ | Variable_name | Value | +--------------------------------------------+--------------…