binlog是一系列文件,这些文件包含了Mysql服务实例中数据的变化。
- binlog包含一系列二进制日志文件,还包含一个索引文件。
-
每个日志文件包含了一个4字节的魔法数,后面跟着描述数据变化的事件内容。
- 魔法数字可以是0xfe 0x62 0x69 0x6e=0xfe 'b''i''n'(这是在log_event.h中定义的BINLOG_MAGIC常量)
-
每个事件包含了事件头字节,后面跟着事件数据字节。
- 事件头字节包含了事件类型、事件发生的时间、服务器信息等等。
- 事件数据字节包含了事件类型的详细信息,例如特定的数据改变。
- 第一个时间是个描述事件,描述了这个文件的格式版本(也就是这个文件中记录事件的格式)
- 剩余的事件是根据版本来进行解释的
- 最后的事件是轮换事件,描述了下个binlog的文件名
- 索引文件是一个文本文件,列出了当前的binlog文件。
日志文件是以.NNNNNN结尾的。索引文件以.index结尾。所有的文件有个相同的前缀。默认的binlog文件的前缀名是“HOSTNAME-bin”。relay 日志文件的命名类似,只不过文件的前缀是“HOSTNAME-relay”。
...
HOSTNAME-bin.0000101
HOSTNAME-bin.0000102
HOSTNAME-bin.0000103
...
HOSTNAME-bin.index
...
HOSTNAME-relay.0000101
HOSTNAME-relay.0000102
HOSTNAME-relay.0000103
...
HOSTNAME-relay.index