MySQL binlog的格式解析
我搜集到了一些资料,对理解代码比较有帮助。
在头文件中binlog_event.h中,有描述
class Log_event_header
class Log_event_footer
参见【Mysteries of the Binary Log Presentation.pdf】
代码见【mysql-5.7.6-m16_src.zip】
MySQL binlog头4个字节:BINLOG_HEADER = b'\xfe\x62\x69\x6e'
然后我们就可以一个Event,一个Event的读取了(格式基本就是一段一段的了。)
用Python解析Event header
struct.unpack("=IBIIIH", header), 得到的分别是timestamp, typecode, server_id, event_len, next_pos, flasg
查看当前binlog的设置
show variables like '%log%';
set global binlog_format='row' ; 'statement' or 'mixed'
binlog格式解析相关的文章和代码:
http://www.tuicool.com/articles/6RvUnqV
http://www.oschina.net/code/snippet_915111_16360
http://www.xcoder.cn/html/Database/mysql/2013/0526/9191.html
http://blog.csdn.net/wyzxg/article/details/7412777
【解析binlog格式,网上能找到有用的文章并不是很多,代码就更少了,我这份代码可以供大家参考。】
https://github.com/healerkx/PySQLKits/tree/master/scripts/mysqlbinlog
细节
1. Decimal在binlog中的的存储格式:
我写到field_descriptor.py里面的 decimal_descriptor, parse()函数, 时间久了,以后我再更新它的解析细节描述。
MySQL binlog的格式解析的更多相关文章
- Mysql Binlog 三种格式介绍及分析
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
- Mysql Binlog三种格式详细介绍
一.MySQL Binlog格式介绍 mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 查看binlog的格式的脚本: 二.binlog 的不同模式有什么区别 ...
- Mysql Binlog三种格式介绍及分析【转】
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
- MySQL Binlog三种格式介绍及分析
Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减 ...
- Mysql Binlog日志详解
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
- MySQL基于ROW格式的数据恢复
大家都知道MySQL Binlog 有三种格式,分别是Statement.Row.Mixd.Statement记录了用户执行的原始SQL,而Row则是记录了行的修改情况,在MySQL 5.6以上的版本 ...
- Mysql binlog二进制日志
Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的实际原sql语句都会被记录在binlog中. 优点:不需要记录每一 ...
- MySql binlog(理论篇)
1.什么是binlog? binlog日志用于记录所有更新了数据的sql语句或保存被修改的记录Row: 有了binlog,可以用于实时备份,master/slave主从同步: 在5.0版本前支持文本格 ...
- MySQL binlog格式解析
MySQL binlog格式解析 binlog想必大家都不陌生,在主从复制或者某些情况下的数据恢复会用到.由于binlog是二进制数据,要查看一般都借助mysqlbinlog工具.这篇笔记分析了b ...
随机推荐
- centos单用户模式修改ROOT密码
首先启动的时候的时候,需要进入单用户模式(进入单用户模式的前提是系统引导器能正常工作),单用户模式是不需要输入密码,并且(进入单用户模式,没有开启网络服务,不支持远程连接 )网上说可以通过GRUB ( ...
- 路线更改事件 $routeChangeStart 与 $locationChangeStart
$routeChangeStart属于$route模块,使用将要改变的路由和当前路由对比,在没有跳转之前 参数包括 function(event, next, current) next $loca ...
- JavaScript面试题
一道常被人轻视的前端JS面试题 标签(空格分隔): JavaScript function Foo() { getName = function () { alert (1); }; return t ...
- DELL vostro V5460 装mSATA 半高SSD硬盘后装win8.1系统
1.介绍 DELL vostro V5460的超极本性能虽然不是那么好,但的确是我觉得样子最好看的一款.满足了,轻,薄.如果是红色的,则很适合女生用. 2.缺点 这款笔记本最大的缺点,就是有的无线网卡 ...
- ubuntu eclipse 中安装 python + PyDev
参照网络和个人总结 系统配置:ubuntu12.04 jdk:1.6 eclipse:3.4 首先你的系统必须安装好pyton .也ubuntu系统自带的 刚开始以为是jdk安装 ...
- div 在页面上漂浮
<div id="codefans_net" style="position:absolute;z-index:5;"> <a& ...
- Android SDK ADT下载地址
http://dl.google.com/android/android-sdk_rXX-windows.zip http://dl.google.com/android/ADT-X.X.X.zip ...
- 麦克斯韦方程组 (Maxwell's equation)的简单解释
[转载请注明出处]http://www.cnblogs.com/mashiqi 2016/12/12 以下会用高中的物理知识和大学微积分的数学知识对麦克斯韦方程组进行一个简单的解释.希望大家都能看得懂 ...
- mysql my.cnf 配置详解
#配置多实例声明[mysqld_multi]mysqld = /data/mysql_bin/bin/mysqld_safemysqladmin = /data/mysql_bin/bin/mysql ...
- CSS中的text-overflow:clip|ellipsis的使用
如果想让某个容器(div或者li或者...块级元素)显示一行文字,当文字内容过多时,不换行,而是出现...,可以使用text-overflow:clip|ellipsis 基本语法:text-over ...