MySQL Binlog文件格式解析
MySQL通过Binlog进行主从数据的复制,Binlog是一种二进制格式的文件,理解Binlog二进制格式能够帮助我们进一步理解MySQL的主从复制原理。本文将对Binlog文件格式进行分析。
本文涉及的源码版本和相关参数如下:
- MySQL Server 5.7.19
- binlog_format:ROW
- binlog_row_image:FULL
一、Binlog文件Magic Number:
Binlog文件,前4个字节固定为一个Magic Number,十六进制值为fe62696e,如果一个文件其前4个字节不是这个Magic Number,那么就可以认为其不是一个有效的Binlog文件。
二、Binlog event:
Binlog文件除了最前面的4个字节之外,就是一个一个的event,event包含两个部分,event header和event data。通常event header大小固定,event data大小可变。
event整体结构如下:
+===================+
| event header |
+===================+
| event data |
+===================+