• 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简化主从同的真正意义

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

  • 相关阅读:
    iOS10 的适配问题,你遇到了吗?导航栏标题和返回按钮神奇的消失了
    如何在获取不到第一响应者控件时移除键盘
    类名与字符串的互转
    clang format 官方文档自定义参数介绍(中英文)
    clang format 自定义样式常用参数说明
    Xcode 设置代码不自动换行
    企业项目如何打包成.ipa文件
    多个过渡动画效果
    压栈过渡动画
    底部不规则导航栏2
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/10560945.html
Copyright © 2020-2023  润新知