binlog2sql之MySQL数据闪回实践】的更多相关文章

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…
1. 简介 mysqlbinlog flashback(闪回)用于快速恢复由于误操作丢失的数据.在DBA误操作时,可以把数据库恢复到以前某个时间点(或者说某个binlog的某个pos).比如忘了带where条件的update.delete操作,传统的恢复方式是利用全备+二进制日志前滚进行恢复,相比于传统的全备+增备,flashback显然更为快速.简单. 目前MySQL的flashback功能是利用binlog完成的,第一个实现该功能的是阿里云的彭立勋, 他在MySQL 5.5版本上就已实现,并…
ALTER TABLE SPM_CON_PAYMENT_RECEIPT ENABLE ROW MOVEMENT;   -- 表名 FLASHBACK TABLE SPM_CON_PAYMENT_RECEIPT TO TIMESTAMP to_timestamp('2017-12-07 20:00:00','YYYY-MM-DD HH24:MI:SS');  --表名+时间点…
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至需要停机维护,并不适合快速回滚.也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能.现在有不少好用而且效率又高的开源闪回工具如binlog2sql.mysqlbinlog_flashback,这些工具在工作中给DBA减轻了不少痛苦,以下针对binlog2sql的使用进行实践演练. bin…
0.闪回技术与工具简介 mysql闪回工具比较流行三大类: [0.1]官方的mysqlbinlog:支持数据库在线/离线,用脚本处理binlog的输出,转化成对应SQL再执行.通用性不好,对正则.sed等需要较高熟练度. [0.2]第三方的mysqlbinlog工具,比官方的工具多了一个闪回功能 -B [0.3]开源的binlog2sql:兼容性比较好,使用难度小,使用简单,前提是mysql必须开启. 最佳实践:线上使用binlog2sql,线下用mysqlbinlog以及mysqlbinlog…
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 1.闪回实现原理 2.binlog文件格式初探 3.闪回实现过程 1.闪回实现原理 闪回的业务价值是,在DBA执行错误的数据提交操作之后,还能把数据恢复还原到之前某个时刻的状态,最大程度地挽回损失. 在MySQL中,binlog文件主要用于主从同步二进制数据日志.当主服务器数据发生变更时,会把变动明细持久化到binlog文件中,此时从服务器通过拉取并解析binlog文件,实现数…
利用MySQL闪回技术恢复误删除误更改的数据 笔者相信很多人都遇到过忘带where条件或者where条件漏写了一个和写错了的情况,结果执行了delete/update后把整张表的数据都给改了.传统的解决方法是:利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是此方法有一个弊端,那就是随着表的记录增大,binlog的增多,恢复起来会很费时费力. 现在有一个简单的方法,可以恢复到误操作之前的状态.听起来这方法似乎利用的是Oracle的闪回功能,但MySQL目前(包括最新的V5.7…
数据被删除 或者 update 的时候忘记勾选where 限制条件,数据全部更新了?  怎么办? 要跑路了? NO !!! 看下面,迅速帮你闪回数据! demo sql: 1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem as of timestamp to_timestamp('2017-04-20 10:45:03','yyyy-mm-dd…
1. SELECT * FROM CT_FIN_RiskItem  --先查询表,确定数据的确不对  (cfstatus 第一行缺少) 2. select * from CT_FIN_RiskItem as of timestamp to_timestamp('2017-04-20 10:45:03','yyyy-mm-dd hh24:mi:ss') --查询 修改数据之前时间 该 表数据是否正常,如果正常 采用该时间戳 进行下一步的  闪回数据! 下面呢有两种闪回方式: 2.1 查询上一布 正…