MySQL5.0引入了一个新的binlog格式,也就是binlog format 4,,binlog format 4是专门为扩展设计的。binlog事件由4部分组成

1 通用头

包含事件的基本信息,其中最重要的字段就是事件类型和时间大小

2 提交头

提交头与特定事件类型有关,对于不同的类型,字段存储的信息不同,但与通用头一样,给定的binlog文件中,提交头的大小是相同的,事件类型的大小由Foramat_description事件给出

3 事件体

事件头后面就是事件体,大小可变,事件的通用头列出了事件体的大小和结束为止。事件体存储事件的主要数据,因事件类型不同而异,例如,Query事件的事件体存储查询,而User_var事

件存储某个语句的用户变量及其值

4 校验和

从5.6开始,如果服务器设置产生检验和的前提,事件末尾就多一个检验和字段,是一个32位整型数,用来检查时间写入后是否有损坏

为了保证每个事件的完整性,MySQL5.6引入了复制的事件的检验和。在写事件的时候,添加一个检验和,然后在读取这些事件的时候,计算这个校验和,并与之前写入的值

进行比较。如果不匹配,在SLAVE在应用该事件的时候,停止执行。MySQL5.6中默认是开启。也可以禁用

通过三个选择项控制复制事件检验和

binlog-checksum=type

表示启用检验和,并告诉服务器用哪种方式计算检验和,有两种,1 CRC32 2 none 关闭检验和,即默认产生检验和

master-verify-checksum=boolean

表示读取二进制的时候,master是否要验证检验和,也就是说dump线程从二进制日志中读取事件后,验证其校验和,无误后在发送给SLAVE。同理使用SHOW BINLOG EVENTS命令也是一样。

如果有任何损坏事件,则抛出一个错误。默认关闭状态

slave-verify-checksum=boolean

表示读取中继日志中,在SLAVE数据库上应用事件之前,SLAVE是否要验证事件的校验和。默认关闭状态

$ client/mysqlbinlog --verify-binlog-checksum master-bin.000001

# at 261

#110406 8:35:28 server id 1 end_log_pos 333 CRC32 0xed927ef2...

SET TIMESTAMP=1302071728/*!*/;

BEGIN

/*!*/;

# at 333

#110406 8:35:28 server id 1 end_log_pos 365 CRC32 0x01ed254d Intvar

SET INSERT_ID=1/*!*/;

ERROR: Error in Log_event::read_log_event(): 'Event crc check failed!...

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

mysql二进制日志文件结构_MySQL 二进制日志的结构相关推荐

  1. mysql二进制日志管理_MYSQL二进制日志管理脚本

    MYSQL二进制日志管理脚本脚本原理是每小时对进行flush生成新的二进制日志,将二进制日志备份至NFS,并压缩存放:#!/bin/bash#Purpose:管理二进制日志,每小时刷新二进制日志,并将 ...

  2. mysql二进制日志特点_MySQL二进制日志分析-概述篇

    MySQL从3.23版本开始引入了二进制日志,用于的数据复制, 二进制日志根据MySQL的版本不同,目前有4个版本: https://dev.mysql.com/doc/internals/en/bi ...

  3. mysql二进制日志重置_MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  4. mysql切换二进制日志命令_Mysql二进制日志binlog命令

    第一节: binlog配置: 注意:MySQL默认是没有开启二进制日志的. 基础参数查看: 开关: [(none)]>select @@log_bin; 日志路径及名字 [(none)]> ...

  5. linux中mysql数据库启用日志记录_MYSQL启用日志,和查看日志

    mysql有以下几种日志: 错误日志:     -log-err 查询日志:     -log 慢查询日志:   -log-slow-queries 更新日志:     -log-update 二进制 ...

  6. 开启mysql日志记录_Mysql开启日志记录

    vim /etc/my.conf.d/server.cnf: #lower_case_tables_name = 1 #错误日志 log_error = /var/log/mysql_error.lo ...

  7. wdcp mysql日志文_mysql的日志简单总结

    事务日志 redo log mysql的innodb引擎在开启事务后,中间的操作都会先在内存中进行.然后将这些数据先写入到redo log中--"日志先行"(Write-Ahead ...

  8. mysql 重做日志 镜像_MySQL重做日志

    MySQL重做日志 故障的类型 事物内部故障 系统故障 介质故障 计算机病毒 日志类型 redo log(重做日志) 处理系统故障 undo log 处理事务故障 (回滚) 重做日志 用来实现事物的持 ...

  9. mysql重做日志文件_MySQL 重做日志文件

    一.innodb log的基础知识 · innodb log顾名思义:即innodb存储引擎产生的日志,也可以称为重做日志文件,默认在innodb_data_home_dir下面有两个文件ib_log ...

最新文章

  1. linux dd命令制作u盘启动_制做linux启动U盘
  2. 关于box2d相关学习教程记录一下
  3. PPT 下载 | 神策数据徐美玲:如何挖好数据这座矿?
  4. 新BOJ 88. 最值问题
  5. 我是新人我最强----团队新手培训计划展开
  6. 经典分享:一份高达555页的技术PPT会是什么样子?
  7. Python零基础:第一个Python程序“hello world“ 背后的运行你懂了吗?
  8. IDEA出现Module ** must not contain source root **. The root already belongs to module **这类错误的解决方法
  9. 【BZOJ 3990】 [SDOI2015]排序
  10. Atitit 关于建立知识库体系的方案
  11. LeaRun快速开发平台:企业供应链管理系统解决方案
  12. java mina框架_Mina框架在项目中的使用(一)
  13. hp服务器u盘安装系统进不了安装界面,hp笔记本开机无法从u盘安装系统
  14. 漫反射(diffuse reflection)
  15. 大型网站技术架构+核心原理与案例分析+李智慧
  16. xilinx apu ,rpu特点 及通信
  17. Linux驱动修炼之道-内存映射 mmap()/phys_to_virt()
  18. Qt 获取 MacBook 设备序列号
  19. 计算机怎么联网络,电脑怎么连接网络
  20. 敏捷转型(2)——企业文化

热门文章

  1. 带你了解Node.js包管理工具:包与NPM
  2. 云小课 | 华为云KYON之ELB混合负载均衡
  3. 如何极速极速搭建个人博客?Copy攻城狮用的这一招很优秀!
  4. 想被千年后的人知道吗,快去GitHub上传代码吧!
  5. 补习系列(16)-springboot mongodb 数据库应用技巧
  6. 弹性文件服务解密 -- 应用场景区分
  7. 使用key 发smtp.sendgrid.net_手把手教你使用 iOS 13 效率神器 「快捷指令」
  8. 微信小程序保存图片拒绝授权后的操作
  9. CSS-标准盒模型和怪异盒模型box-sizing
  10. 有序数组原地删除重复出现的元素问题(js)