zoukankan      html  css  js  c++  java
  • mysql GTID

    最近在学习mysql45讲这门课的时候,老师在27节讲到主库出问题了,从库怎么办?

    在解决的过程中提到了GTID,是mysql5.6版本引入的,这个是哥什么呢?

    GTID是master生产的自增ID,每个事务的唯一标识,它由server_id+自增序号构成,因此,不同 mysql节点产生的GTID必然不同,因此在整个集群全局中不会重复

    有了整个GTID,mysql主从可以统一的基于binlog完成主从的数据同步,slave上传自己已经执行过的GTID set给master,master即可将自己binlog中拥有而slave没有执行过的gitd set同步给slave,整个对比和同步过程因为gtid有序的原因而变得自动化、高效化

    主从同步的理解

    master生成binlog中每一条事务都有gtid标识,那么当binlog同步到slave后,salve先将他们保存到中继日志relay-log,然后再读入relay-log逐条的重放事务

    在GTID的主动模式下,slave要求开启binlog,并且将重放relay-log产生的事务日志也写入binlog中,这样的意义是,当slave重放relay-log时,可以根据事务gtid去自己的binlog中确认这条事务是否已经执行过,避免因为各种异常造成重复的重放事务,另外,根据此前对gtid的理解,gtid模式的主从同步是基于binlog实现的,为了实现failover容灾,每个slave都应该开启binlog,这样当master宕机后,某个slave作为新的master时,其他slave可以直接基于binlog+gtid从新master开始同步,这才是gtid简化主从同的真正意义

    很多时候看这些概念或者要理解这些需要花很长时间,而做开发的我们很少也用到这些,但是还是要学习这样,我觉得意义在于学习这些优秀前辈设计的思路,在遇到问题怎么更加优雅的去解决,学习这些也让我在以后的项目设计中也有所借鉴,感觉自己要学习的东西还有很多。

  • 相关阅读:
    BZOJ4416 SHOI2013阶乘字符串(状压dp)
    雅礼集训 Day2 T3 联盟 解题报告
    雅礼集训 Day1 T2 折射
    雅礼集训 Day1 T1 养花
    P1494 [国家集训队]小Z的袜子/莫队学习笔记(误
    洛谷 P2155 [SDOI2008]沙拉公主的困惑 解题报告
    动态MST
    洛谷 P2606 [ZJOI2010]排列计数 解题报告
    牛客 2018NOIP 模你赛2 T2 分糖果 解题报告
    洛谷 P3396 哈希冲突 解题报告
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/10560945.html
Copyright © 2011-2022 走看看