本篇内容主要讲解“Mysql 5.7中Gtid和Last_commt/sequnce_number的生成时机是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql 5.7中Gtid和Last_commt/sequnce_number的生成时机是什么”吧!
这里首先使用源码的解释给出三种类型:
AUTOMATIC_GROUP
GTID_GROUP
ANONYMOUS_GROUP
其中AUTOMATIC_GROUP通常用于主库开启Gtid的情况,GTID_GROUP通常用于备库和使用了GTID_NEXT的情况下。
源码中有详细解释如下:
Gtid其实是在commit的时候调用MYSQL_BIN_LOG::ordered_commit执行到flush 阶段产生Gtid event的时候才生成,生成后会将这个Gtid 加入到Gtid_state的Owned_gtids中,实际上这个过程不仅要生成Gtid还会生成sequence_number和last_commit并且会构造Gtid_event写入到binlog cache最后将binlog cache写入到binlog file,下面是binl免费主机域名og_cache_data::flush函数的片段:
下面是mysql_bin_log.write_gtid中生成Gtid和Last_commt/sequnce_number的代码片段:
其调用栈帧如下:
接下来我们就需要具体研究下一个Gtid是依靠什么逻辑生成的。我们需要查看函数Gtid_state::generate_automatic_gtid和Gtid_state::get_automatic_gno逻辑,他们用于生成一个Gtid。
接下免费主机域名来看看gno的生成逻辑Gtid_state::get_automatic_gno。到此,相信大家对“Mysql 5.7中Gtid和Last_commt/sequnce_number的生成时机是什么”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
相关推荐: 安装Percona mysql的时候出现依赖包错误怎么办
这篇文章给大家分享的是有关安装Percona mysql的时候出现依赖包错误怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装Percona mysql的时候出现依赖包错误[root@localhost upload]# rp…