zoukankan      html  css  js  c++  java
  • MySql-Binlog协议详解

    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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    selenium环境搭建
    noip2020游记
    [HNOI2007]分裂游戏——博弈论好题
    [SCOI2007]压缩——区间dp
    赛道修建——二分答案
    玩诈欺的小杉——异或优化的状压dp
    【佛山市选2013】排列——发现性质与转化问题
    电话线铺设——难实现的最小生成树
    备用钥匙——分情况讨论的好dp
    喝喝喝——稍加推导的好转化
  • 原文地址:https://www.cnblogs.com/skying555/p/9983813.html
Copyright © 2011-2022 走看看