美文网首页简书付费文章
第6节:重点Event FORMAT_DESCRIPTION_E

第6节:重点Event FORMAT_DESCRIPTION_E

作者: 重庆八怪 | 来源:发表于2020-03-05 14:53 被阅读0次

    一、FORMAT_DESCRIPTION_EVENT

    1、FORMAT_DESCRIPTION_EVENT的作用

    本Event是binary log的第一个Event。这个Event比较简单,因为它携带的数据都是固定的,没有可变部分。其中包含了binary log的版本信息、MySQL的版本信息、Event_header的长度、以及每个Event type的固定部分的长度。

    下面信息将会保存在从库的内存中:

    • 在从库的内存中保存主库的信息,这个变量是Master_info.mi_description_event。

    queue_event函数中case binary_log::FORMAT_DESCRIPTION_EVENT部分。

    • 将从库的relay log的FORMAT_DESCRIPTION_EVENT记录为和主库相同,即更新Relay_log_info.rli_description_event。

    Format_description_log_event::do_apply_event函数中如下片段:

        /* Save the information describing this binlog */
        copy_crypto_data(*rli->get_rli_description_event());
        const_cast<Relay_log_info *>(rli)->set_rli_description_event(this);
    

    至少下面几个地方都会读取其中的信息:

    1. 每次SQL线程应用Event的时候会获取Event_header的长度和相应Event固定部分的长度。
    2. IO线程启动的时候检测版本,参考函数get_master_version_and_clock。
    3. 将信息写入到relay log的开头的FORMAT_DESCRIPTION_EVENT中。

    它一定出现在binary log开头,位置固定为‘#4’。

    相关文章

      网友评论

        本文标题:第6节:重点Event FORMAT_DESCRIPTION_E

        本文链接:https://www.haomeiwen.com/subject/bkxfrhtx.html