• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 在MySQL中使用mysqlbinlog flashback的简单教程

在MySQL中使用mysqlbinlog flashback的简单教程

作者:吴炳锡 字体:[增加 减小] 来源:互联网 时间:2017-05-11

吴炳锡通过本文主要向大家介绍了mysqlbinlog,mysqlbinlog 查看,mysqlbinlog工具,mysqlbinlog 恢复,mysqlbinlog工具下载等相关知识,希望本文的分享对您有所帮助

简介:
mysqlbinlog flashback功能是淘宝彭立勋(http://www.penglixun.com/)的一个很强劲的作品.
主要功能: 对rows格式的binlog可以进行逆向操作.delete反向生成insert, update生成反向的update,insert反向生成delete.让dba同学们也有机会简单的恢复数据.可恢复:insert, update,delete相关的操作.

演示一下使用过程:

生成带有flashback mysqlbinlog 工具:

项止主页:http://mysql.taobao.org/index.php/Patch_source_code#Add_flashback_feature_for_mysqlbinlog

准备好MySQL-5.5.18的源码,这里用的Percona-MySQL-5.5.18源码
cd mysql-5.5.18
wget http://mysql.taobao.org/images/0/0f/5.5.18_flashback.diff
patch -p0<5.5.18_flashback.diff

即可以看到了mysqlbinlog , 因这里只为要mysqlbinlog这个程序,所以编译MySQL时没加特别的参数.该工具是否具备flashback功能可以确认一下是否有 “-B” 这个参数.

开始实验:

mysql test
mysql> select count(*) from pic_url;
+----------+
| count(*) |
+----------+
| 786476 |
+----------+
1 row in set (0.11 sec)
mysql>delete from pic_url;
Query OK, 786476 rows affected (22.81 sec)
mysql>select count(*) from pic_url;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.03 sec)
</div>
mysql>show binary logs;
...
| mysql-bin.000011 | 195001447 |
| mysql-bin.000012 | 106 |
+------------------+-----------+

</div>


Tips:
定位日值,一般看当前的log如果当前的log文件比较小,那么就是上一个文件至于为什么,这里就不讲了.也可以用mysqlbinlog 去实际查看确认一下.

接下来就是要找到这个delete在log中position的变化区间了.这个没什么技巧,通常使用:

./mysqlbinlog -v --base64-output=decode-rows  /u1/mysql/logs/mysql-bin.000011 >11.sql
</div>

然后对11.sql文件进行搜索了表名,找到相应的节点.大表删除通常最后的stop点都在文件最后.找到节点后就可以:

./mysqlbinlog -v --base64-output=decode-rows -B --start-position=377 --stop-position=195001377 /u1/mysql/logs/mysql-bin.000011>B11.sql
</div>

同样对B11.sql这个文件验证一下.看看结尾是和预期一样.验证OK后就可以:

./mysqlbinlog -B --start-position=377 --stop-position=195001377 /u1/mysql/logs/mysql-bin.000011|mysql test
</div>

如果表比较大,则执行着比较慢.如不出错请耐心等待.执行完毕后:

mysql>select count(*) from pic_url;
+----------+
| count(*) |
+----------+
| 786476 |
+----------+
1 row in set (0.11 sec)

</div>

数据又恢复了.

注意:
为防止恢复报错需要把:max_allowed_packet 改到最大值1G;
mysql>set global max_allowed_packet=1024*1024*1024;

#max_allow_packet大小不够时报错如下:
ERROR 1153 (08S01) at line 403133: Got a packet bigger than ‘max_allowed_packet' bytes

恢复操作有风险,请在备库操作或是在经验丰富的同学指导下进行.

二进制文件上传不到服务器上,传到github上一个二进制文件:https://github.com/wubx/mysql-binlog-statistic/tree/master/bin  在64的位的linux系统编译的. 有需要的直接下载.

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql手动删除BINLOG的方法
  • mysql binlog二进制日志详解
  • Mysql Data目录和 Binlog 目录 搬迁的方法
  • MySQL数据库恢复(使用mysqlbinlog命令)
  • mysql对binlog的处理说明
  • MySQL数据库恢复(使用mysqlbinlog命令)
  • 在MySQL中使用mysqlbinlog flashback的简单教程
  • 教你自动恢复MySQL数据库的日志文件(binlog)
  • MySQL中的binlog相关命令和恢复技巧
  • 使用mysql事件调度器定时删除binlog

相关文章

  • 2018-12-05MySQL ORDER BY 的实现分析
  • 2018-12-05SQLServer 2000 升级到 SQLServer 2008 性能之需要注意的地方之
  • 2018-12-05从Oracle 表格行列转置说起第1/2页
  • 2018-12-05Oracle update关联表的思路总结
  • 2018-12-05SQL语句的基本语法
  • 2018-12-05sqlserver 存储过程分页代码第1/2页
  • 2018-12-05SQLSERVER查询所有数据库名,表名,和字段名的语句
  • 2018-12-05mysql进阶(十四) 批量更新与批量更新多条记录的不同值实现方法
  • 2018-12-05ORACLE时间函数(SYSDATE)深入理解
  • 2017-05-11让MySQL支持中文排序的实现方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql主从不同步问题分析
    • MySQL数据库安全配置介绍第1/2页
    • 解析mysql 5.5字符集问题
    • oracle sql 去重复记录不用distinct如何实现
    • mysql中判断记录是否存在方法比较
    • mysql数据库修改数据表引擎的方法
    • mysql安装图解 mysql图文安装教程(详细说明)
    • MySql存储过程异常处理示例代码分享
    • PHP 连接MAMP时数据库服务连接不上该怎么办?
    • mysql如何按照中文排序解决方案

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有