使用过商业数据库oracle都知道,oracle有一个闪回功能非常好用,可以非常迅速的找回删除的数据或者删除的表,这个功能在线上要谨慎使用,除非是万般无奈之下才去使用,在转向使用mysql时发现,官方根本没有提供闪回功能,如果要找回删除或者更新的数据,就只能使用备份恢复的方式了,如果DB容量特别大,例如:1TB,那恢复时间将会持续7个小时左右,具体需要看机器性能和网络带宽,如果有类似oracle闪回功能可以将时间缩减到半小时,甚至更短,大大减少工作量。

阿里大神彭立勋在mysql5.5的时候,自己用python实现了mysql数据库闪回功能,工具名称是mysqlbinlog_flashback,github访问地址

https://github.com/58daojia-dba/mysqlbinlog_flashback

曹单锋也实现了mysql数据库闪回功能,工具名称是binlog2sql,github访问地址

https://github.com/danfengcao/binlog2sql

在使用以上2个工具之前,你所在的Mysql数据库的主从复制必须是row模式,并且binlog_row_image参数设置为full,设置为full原因是,工具在解析binlog日志时,要生成恢复sql,必须知道行记录修改前的值以及修改之后的值。

下面先介绍一下mysqlbinlog_flashback,从github上下载之后,需要python2.6,并且需要安装依赖模块pymysql,这个模块主要用户连接mysql数据库,pymysql的github访问地址

https://github.com/PyMySQL/PyMySQL/

安装方法:压缩包解压之后,进入到安装目录,执行以下命令就可以正常安装

python setup.py build

python setup.py install

这个工具可以指定一个或者多个表进行闪回,语法如下所示

python mysqlbinlog_back.py --host="10.10.67.188" --username="tony" --port=3306 --password="tony" --schema=test --table="t_test"

恢复语句存放在log目录下

只要执行恢复数据的sql文件,即可完成数据恢复工作

mysql ... --default-character-set=utf8mb4 test < flashback_test_20170309_174737.sql

如果要使用更多高级功能,或者使用更精确的恢复,可以使用看系统帮助,命令如下所示

python mysqlbinlog_back.py --help

再介绍一下binlog2sql工具,这个工具从github下载之后,需要python2.6或者2.7,并且需要安装依赖模块pymysql,python-mysql-replication,argparse,pymysql模块的安装上面已经介绍,这里就不再说明,python-mysql-replication可以从github上下载,下载地址

https://github.com/noplay/python-mysql-replication

安装方法:压缩包解压之后,进入到安装目录,执行以下命令就可以正常安装

python setup.py build

python setup.py install

argparse模块需要从https://pypi.python.org/pypi/argparse上下载安装包,安装方法如上所示

上述模块安装完毕之后,就可以正常使用binlog2sql工具

这个工具可以指定一个或者多个表进行闪回,语法如下所示

python binlog2sql.py -h127.0.0.1 -P3306 -utony -p'tony' -dtest -t t_test --start-file='mysql-bin.000004'

如果要使用更多高级功能,或者使用更精确的恢复,可以使用看系统帮助,命令如下所示

python binlog2sql.py --help

下面是我的公众号二维码,欢迎添加

Mysql数据恢复---闪回恢复相关推荐

  1. 闪回恢复区 (Flash Recovery Area)

    在oracle 9i中引入flashback查询,以便能在需要的时候查到过去某个时刻的一致性数据,依赖于undo表空间存储的信息来闪回查询以前的版本,当然这个受限于undo表空间的大小,以及保留策略. ...

  2. Oracle数据库中闪回恢复的详细分析

    Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大 ...

  3. oracle有人用过fra吗,FRA(闪回恢复区)

    1.闪回恢复区简介 闪回恢复区可以集中存储所有与恢复相关的文件.FRA可以使用本地附加的存储.Oracle的群集文件系统(Cluster File System,简写为OCFS)或Oracle 10g ...

  4. Oracle闪回恢复区(fast recovery area,FRA)

    Oracle闪回恢复区(fast recovery area,FRA) 闪回恢复区(Fast Recovery Area,FRA)是一块可选的磁盘位置,可以用来存储与恢复相关的文件,例如控制文件和联机 ...

  5. oracle rac 快速闪回区 路径,oracle 10g rac配置闪回恢复区 开启归档

    DBCA创建数据库的时候,默认是不使用flash_recovery_area,不开启归档的. 本文以2个节点的rac为例,所阐述的内容是在新建数据库后,如何设置闪回恢复区,如何开启归档,设置归档路径. ...

  6. mysql binlog2sql闪回数据

    利用binlog2sql快速闪回误删除数据 - 别拿豆包不当干粮 转原文地址: http://blog.51cto.com/sumongodb/2046073?cid=699139 各位兄弟们,好久不 ...

  7. mysql binlog2sql_mysql闪回工具binlog2sql安装配置教程详解

    概述 binlog2sql是一个Python开发开源的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,去除主键的INSERT SQL,是 ...

  8. mysql有闪回吗_mysql 闪回测试

    由于前面出现过几个需求,或者误操作,或者测试,需要我把某张表恢复到操作之前的一个状态,前面在生产中有过几次经历,实在太痛苦了,下面是一张表被误删除了,我的步骤是: 1  用全备恢复整个库(恢复到其他环 ...

  9. binlog2sql闪回恢复数据

    用途: 1.数据快速回滚 2.从binlog生成标准sql 使用限制: 1.必须设置binlog_format=ROW 2.binlog_row_image=full,该参数默认为FULL 3.恢复用 ...

最新文章

  1. 如何在Python中反转列表?
  2. 超大非负整数的减法~
  3. linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
  4. 知道接口地址 如何传数据_数据不知道如何可视化?一款工具推荐给大家
  5. MFC窗口标题栏隐藏
  6. 【Https】Spring RestTemplete支持Https安全请求
  7. FPGA设计入门-----1位全加器的设计
  8. Linux 内核和 Windows 内核有什么区别?
  9. 关于LANP的相关常识题
  10. DNT精英论坛(暨.NET北京俱乐部)第3期沙龙:区块链跨链技术的设计与实践
  11. 百度AI 开放平台 智能语音识别
  12. 守护线程daemon
  13. shell的一些基础
  14. 二代旅游CMS网站管理系统使用手册(三)--计调线路团期录入
  15. 登录界面——渗你千千万万遍
  16. 顺丰官网代码(自编)
  17. 评价一个产品好坏的简单准则:NPS
  18. 耳机接口规则_3.5mm耳机接口和2.5mm耳机接口有什么区别?
  19. 高分难题,绝对有难度
  20. php发送邮件 企业邮箱,ThinkPHP如何企业邮箱通过PHPMailer发送邮件

热门文章

  1. 使用 Go 语言进行并发编程的实践方法
  2. 直接寻址、间接寻址、立即数寻址
  3. eclipse配置python运行环境_Eclipse配置Python环境
  4. UE4中修改模型mesh资源的枢轴坐标原点位置
  5. JDBC、封装JDBC连接池、第三方连接池工具
  6. 多元函数的泰勒级数展开公式
  7. web期末作业设计网页:动漫网站设计——蜡笔小新(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 动漫网页设计作业 web网页设计与开发 html实训大作业...
  8. 国内公认18处超级美景
  9. MySQL——MySQL的flush
  10. 苹果Mac如何优化电池续航能力?