Mysql闪回技术之 binlog2sql
1.下载
https://github.com/danfengcao/binlog2sql
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 下载上传安装# pip install PyMySQL# pip install -r requirments.txt# pwd/usr/local/binlog2sql-master/binlog2sql-master# less README.md --这个必须要看个十遍,八遍的才行 |
3. 测试用例
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
(root@localhost) [kk]> create database roidba;Query OK, 1 row affected (0.00 sec) (root@localhost) [kk]> use roidbaDatabase changed(root@localhost) [roidba]> create table roidba ( id int,name varchar(10));Query OK, 0 rows affected (0.15 sec) (root@localhost) [roidba]> insert into roidba values(1,'mysql');Query OK, 1 row affected (0.00 sec) (root@localhost) [roidba]> insert into roidba values(2,'oracle');Query OK, 1 row affected (0.00 sec) (root@localhost) [roidba]> insert into roidba values(3,'mariadb');Query OK, 1 row affected (0.00 sec)(root@localhost) [roidba]> delete from roidba;Query OK, 3 rows affected (0.01 sec)(root@localhost) [roidba]> select * from roidba;Empty set (0.00 sec) |
4. 创建闪回用户
|
1
2
3
4
5
|
(root@localhost) [roidba]> GRANT SELECT,REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO flashback@'%' identified by 'flashback'; Query OK, 0 rows affected (0.04 sec) (root@localhost) [roidba]> flush privileges;Query OK, 0 rows affected (0.05 sec) |
5. 闪回的要求
|
1
2
3
4
5
6
7
8
9
10
|
1)知道大概的时间点2017-01-12 18:00 ~ 2017-01-12 18:002)知道binlog信息(root@localhost) [roidba]> show binary logs;+------------------+----------------+| Log_name | File_size |+------------------+----------------+| mysql-bin.000001 |3828 || mysql-bin.000002 | 238 || mysql-bin.000003 |1231 |+------------------+---------------+ |
6. 解析
|
1
2
3
4
5
6
7
8
9
10
11
12
|
--binlog中解析的sql[root@mysql-121 binlog2sql-master]# python binlog2sql/binlog2sql.py -h192.168.80.132 -P3306 -uflashback -pflashback -droidba -troidba --start-file='mysql-bin.000003' --start-datetime='2017-01-12 18:00:00' --stop-datetime='2017-01-12 18:30:00'INSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (1, 'mysql'); #start 239 end 413 time 2017-01-12 18:10:54INSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (2, 'oracle'); #start 492 end 667 time 2017-01-12 18:11:00INSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (3, 'mariadb'); #start 746 end 922 time 2017-01-12 18:11:08DELETE FROM `roidba`.`roidba` WHERE `id`=1 AND `name`='mysql' LIMIT 1; #start 1001 end 1200 time 2017-01-12 18:11:14DELETE FROM `roidba`.`roidba` WHERE `id`=2 AND `name`='oracle' LIMIT 1; #start 1001 end 1200 time 2017-01-12 18:11:14DELETE FROM `roidba`.`roidba` WHERE `id`=3 AND `name`='mariadb' LIMIT 1; #start 1001 end 1200 time 2017-01-12 18:11:14USE roidba;GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'flashback'@'%' IDENTIFIED BY PASSWORD '*6DE874C277DDA35061BD526FB38B6A3C8B3A9254';USE roidba;flush privileges; |
7. 闪回
|
1
2
3
4
5
6
7
8
|
--闪回sql# python binlog2sql/binlog2sql.py -h192.168.80.132 -P3306 -uflashback -p'flashback' -droidba -troidba --start-file='mysql-bin.000003' --start-position=1001 --stop-position=1200 -B > rollback.sql[root@mysql-121 binlog2sql-master]# less rollback.sqlINSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (3, 'mariadb'); #start 1001 end 1200 time 2017-01-12 18:11:14INSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (2, 'oracle'); #start 1001 end 1200 time 2017-01-12 18:11:14INSERT INTO `roidba`.`roidba`(`id`, `name`) VALUES (1, 'mysql'); #start 1001 end 1200 time 2017-01-12 18:11:14--开始回滚[root@mysql-121 binlog2sql-master]# mysql -ubackup -pbackup -h192.168.80.132 <./rollback.sql --具有插入权限才可以 |
8.验证
自己多测试,多动手,看别人做很简单,其实真的自己上手就不一定了,少说多做,少扯淡。
Mysql闪回技术之 binlog2sql的更多相关文章
- (4.11)mysql备份还原——mysql闪回技术(基于binlog)
0.闪回技术与工具简介 mysql闪回工具比较流行三大类: [0.1]官方的mysqlbinlog:支持数据库在线/离线,用脚本处理binlog的输出,转化成对应SQL再执行.通用性不好,对正则.se ...
- MySQL 闪回工具之 binlog2sql
生产上误删数据.误改数据的现象也是时常发生的现象,作为 DBA 这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太 ...
- Mysql闪回工具之binlog2sql的原理及其使用
生产上误删数据.误改数据的现象也是时常发生的现象,作为运维这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太大,成 ...
- MySQL闪回工具之binlog2sql
一.binlog2sql 1.1 安装binlog2sql git clone https://github.com/danfengcao/binlog2sql.git && cd b ...
- mysql 闪回原理
利用MySQL闪回技术恢复误删除误更改的数据 笔者相信很多人都遇到过忘带where条件或者where条件漏写了一个和写错了的情况,结果执行了delete/update后把整张表的数据都给改了.传统的解 ...
- Mysql 之闪回技术 binlog2sql
1.下载 https://github.com/danfengcao/binlog2sql http://rpmfind.net Search: python-pip pip 是一个Python包管理 ...
- MySQL闪回工具之myflash 和 binlog2sql
MySQL闪回工具之:binlog2sql https://github.com/danfengcao/binlog2sql MYSQL Binglog分析利器:binlog2sql使用详解 :h ...
- mysql闪回工具--binlog2sql实践
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据.此法费时费力,甚至需要停机维护 ...
- MySQL闪回原理与实战
本文将介绍闪回原理,给出笔者的实战经验,并对现存的闪回工具作比较. DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚.传统恢复方法是利用备份重搭实例,再应用去除 ...
随机推荐
- ASP.NET MVC DropdownList的使用
1:直接使用HTML代码写 <select name="year"> <option value="2011">2010</opt ...
- inline-block空隙总结
如果inline-block,宽度都是50%会留有空隙,解决方法如下 1.标签之间不留空格 (1)直接不留空 <div></div><div></div> ...
- python的 json.dumps 中文编码
python的 json.dumps 中文编码 # -- coding: utf-8 -- 的作用:文件内容以utf-8编码 json.dumps 序列化时对中文默认使用的ascii编码, print ...
- Jquery获取对象的几种方式介绍
参考: 1.http://blog.csdn.net/zengyonglan/article/details/53995295 2.http://api.jquery.com/category/sel ...
- javascript快速入门22--Ajax简介
Ajax是什么? 首先,Ajax是什么?一个很酷的新兴词汇!仅仅是某种早就有了的技术的一种新说法而已! Ajax是指一种创建交互式网页应用的网页开发技术.要谈到网页应用程序,则必须从WEB的历史来讲: ...
- Accessing Report Server using Report Server Web Service - Microsoft SQL Server 2008R2
Today I am going to write about how to access SQL Server Report Server through Report Server Web ser ...
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn. ...
- PHPer 应聘见闻
关于我自己 我,很普通的一个开发,88年出生在皖南山区.从小学到高中毕业都没想过自己会从事软件开发,高考的误打误撞,被某普通二本院校收编.大学浑浑噩噩,对软件开发也没多大的兴趣,11年毕业后来杭,面试 ...
- CentOS下安装实时检測网络带宽的小工具bmon
首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...
- 小程序app is not defined
错误记录: 小程序丨 报错:app is not defined; 解决方案: Js头部添加:var app = getApp(); 返回按钮: wx.navigateBack(); 转发 ...