专栏名称: 数据分析与开发
伯乐在线旗下账号,分享数据库相关技术文章、教程和工具,另外还包括数据库相关的工作。偶尔也谈谈程序员人生 :)
目录
相关文章推荐
数据中心运维管理  ·  施耐德电气PowerLogic™ ... ·  昨天  
数据中心运维管理  ·  6月1日起实施!我国首部绿色数据中心评价国标 ... ·  2 天前  
数据中心运维管理  ·  应急预案和应急演练到底怎么做? ·  昨天  
51好读  ›  专栏  ›  数据分析与开发

MySQL 闪回原理与实战

数据分析与开发  · 公众号  · 数据库  · 2017-01-06 20:32

正文

请到「今天看啥」查看全文


` name `) VALUES ( 2 , '小钱' );

回滚: DELETE FROM ` test `.` user ` WHERE ` id ` = 2 AND ` name ` = '小钱' ;


对于update操作,回滚sql应该交换SET和WHERE的值。


原始: UPDATE ` test `.` user ` SET ` id ` = 3 , ` name ` = '小李' WHERE ` id ` = 3 AND ` name ` = '小孙' ;

回滚: UPDATE ` test `.` user ` SET ` id ` = 3 , ` name ` = '小孙' WHERE ` id ` = 3 AND ` name ` = '小李' ;


闪回实战


真实的闪回场景中,最关键的是能快速筛选出真正需要回滚的SQL。


我们使用开源工具binlog2sql来进行实战演练。binlog2sql由美团点评DBA团队(上海)出品,多次在线上环境做快速回滚。


首先我们安装binlog2sql:


shell > git clone https : //github.com/danfengcao/binlog2sql.git && cd binlog2sql

shell > pip install - r requirements . txt


背景:小明在11:44时误删了test库user表大批的数据,需要紧急回滚。


test user 表原有数据

mysql > select * from user ;

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

| id | name | addtime |

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

| 1 | 小赵 | 2013 - 11 - 11 00 : 04 : 33 |

| 2 | 小钱 | 2014 - 11 - 11 00 : 04 : 48 |

| 3 | 小孙 | 2016 - 11 -







请到「今天看啥」查看全文