• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

MySQL 5.7 GTID源码分析系列

MySQL 彭东稳 7年前 (2017-12-19) 35233次浏览 已收录 0个评论

从MySQL 5.6开始增加了强大的Gtid(Global Transaction ID,全局事务ID)这个特性,用来强化数据库的主备一致性,故障恢复,以及容错能力。用于取代过去通过binlog文件偏移量定位复制位置的传统方式。借助GTID,在发生主备切换的情况下,MySQL的其它Slave可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设置复制位置发生误操作的风险。另外,基于GTID的复制可以忽略已经执行过的事务,减少了数据发生不一致的风险。

另外,我们熟知的MHA高可用方案在Gtid复制模式的切换下安全性更高了,还有MySQL 5.7.19发布的MGR(MySQL Group Replication)也同样是基于Gtid的,所以了解Gtid的原理也是必要的。

Gtid的维护是完全自动的,但是实际使用上确实有较多的坑,我的博客也写了一些Gtid相关的文章,但更多是基于应用层面,不够深入。下面这个Gtid系列文章是一个朋友@高鹏,网名@八怪,一个喜欢研究MySQL源码,喜欢分享,且乐于助人的80后码农。据说可是花了不少时间从Gtid模块的源码出发分析,并且给出总结,然后结合运维和案例进行综合的解析,你值得拥有。

MySQL 5.7 Gtid内部学习(一):导读

MySQL 5.7 Gtid内部学习(二):Gtid相关内部数据结构

MySQL 5.7 Gtid内部学习(三):Gtid和Last_commt/sequnce_number的生成时机

MySQL 5.7 Gtid内部学习(四):mysql.gtid_executed表的作用和Previous gtid Event的改变

MySQL 5.7 Gtid内部学习(五):mysql.gtid_executed表/gtid_executed变量/gtid_purged变量的更改时机

MySQL 5.7 Gtid内部学习(六):Mysql启动初始化Gtid模块

MySQL 5.7 Gtid内部学习(七):总结binlog_gtid_simple_recovery参数带来的影响

MySQL 5.7 Gtid内部学习(八):Gtid带来的运维改变

MySQL 5.7 Gtid内部学习(九):实际案例(一)

MySQL 5.7 Gtid内部学习(十):实际案例(二)

MySQL 5.7 Gtid的增强


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (2)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!