Reference: https://blog.csdn.net/hj7jay/article/details/56665057?utm_source=blogxgwz7

MySql-Binlog协议详解-流程篇

MySql-Binlog在MySql主从不同方面发挥着不可或缺的作用,同时我们也能通过Binlog实时监控数据的变化。本系列就讲述了怎样接收并解析Binlog。本篇就主要对接收binlog的流程做了一下探讨。

Binlog发送接收流程,流程如下图所示:

(1)第一步和上篇blog一样,通过HandShake协议进行Client和DB的握手认证 (2)握手成功以后,Client对DB发送show master status命令,此命令中回带回当前最新binlog存储在哪个文件,以及对应哪个偏移量。如果想从当前开始接收binglog,则在后面发送binlog dump命令的时候用这两个值就好。
(3)发送show global variables like 'binlog_checksum'命令,这是由于binlog event发送回来的时候需要,在最后获取event内容的时候,会增加4个额外字节做校验用。mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none。如果不想校验,可以使用set命令设置set binlog_checksum=none
(4)最后终于到了发送Dump命令的阶段

MySql-Binlog-Dump命令

Dump命令包图如下所示:

如上图所示,在报文中塞入binlogPosition和binlogFileName即可让master从相应的位置发送binlog event

MySql-Binlog-Event

一但发送了BinlogDump命令,master就会在数据库有变化的源源不断的推送binlog event到client。值得注意的是binlog的类型有三种:
(1)Statement:每一条会修改数据的sql都会记录在binlog中。
(2)Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改。
(3)Mixedlevel:以上两种Level的混合。
---------------------
作者:Joker_Ye
来源:CSDN
原文:https://blog.csdn.net/hj7jay/article/details/56665057
版权声明:本文为博主原创文章,转载请附上博文链接!

MySql-Binlog协议详解的更多相关文章

  1. mysql binlog配置详解

    关闭binlog,注释掉mysql配置文件中的log-bin=mysql-bin即可     baidu zone - 关闭binlog方法   cnblogs - linux下mysql配置文件my ...

  2. Mysql Binlog日志详解

    一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...

  3. mysql 5.7.12 新增 X plugin x 协议 详解

    mysql 5.7.12 新增 X plugin  x 协议 详解http://xiaozhong991.blog.51cto.com/2354914/1763792 x 协议  操作nosql数据库 ...

  4. Mysql加锁过程详解(1)-基本知识

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  5. Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  6. MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  7. MySQL日志功能详解

    MySQL日志功能详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询日志 它是用来保存所有跟查询相关的日志,这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果 ...

  8. MySQL数据库优化详解(收藏)

    MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * ...

  9. (转)MySQL备份原理详解

    MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...

随机推荐

  1. Pyinstaller打包附带DLL、图标和压缩EXE方法

    Pyinstaller打包附带DLL.图标和压缩EXE方法     转载: https://blog.csdn.net/xinyingzai/article/details/80282856   目的 ...

  2. window10 还原精灵 破解版 冰点

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha=======

  3. Altium Designer Summer 09换成中文步骤

    1.打开Altium Designer Summer 09软件,在左上角file文件中点击,再打开Preferences出现如下,然后关闭软件在打开就完成了

  4. Springzz中使用监听器,用于容器一启动就加载准备数据(application范围内的数据,用于减轻服务器压力,不用每次都去查数据)

    java代码: public class InitListener implements ServletContextListener { public void contextInitialized ...

  5. vi 命令 行首、行尾

    vim 跳到行首 : 数字 0 vim跳到行位 : $  [Shift + 4]

  6. docker 安装 nginx

    docker pull nginx docker run -d -p 80:80 -v /opt/nginx/www/:/usr/share/nginx/html/  --name webserver ...

  7. reveal查看任意APP

    链接: 使用Reveal查看任意App的技巧 使用Reveal查看任意App最省步骤的技巧 如何利用Reveal神器查看各大APP UI搭建层级 使用Reveal查看别人app的UI组成 Reveal ...

  8. Mongoose多数据库连接及实用样例

    使用环境: MongoDB 3.6 插件版本: "mongodb": "^3.1.10","mongoose": "^5.4.2& ...

  9. DBProxy

    DBProxy/USER_GUIDE.md at master · Meituan-Dianping/DBProxy   https://github.com/Meituan-Dianping/DBP ...

  10. WinPython

    WinPython   http://winpython.github.io/