美文网首页Java
Mysql主从复制原理

Mysql主从复制原理

作者: 曾经的飞舞梦 | 来源:发表于2019-06-30 17:12 被阅读25次

    Mysql主从复制原理

        从库生成两个线程,一个I/O线程,一个SQL线程;

            从库的I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)文件中;

            主库会生成一个log dump线程,用来给从库I/O线程传binlog;

            SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致:

    mysql主从同步的原理及配置主从的完整步骤

            主从原理:从库slave生成两个线程,I/O线程和SQL线程,I/O将变更记录到二进制日志文件中,再写到中继日志中,SQL线程读取中继日志,解析操作,而最终数据统一。       

    GTID复制技术(Mysql5.6版本后才有)

        GTID作用:

            使用GTID技术可以让两台服务器之间自动交换事务ID,经过对比,请求数据,保证服务器之间的数据时同步的。

            提升安全性:

                多事务并行执行时,也不会造成数据混乱

                多线程复制,从服务器可以启动多个SQL  thread, 并行执行多个库的复制,提升速度。

                Mysql5.7以后出现多源复制

                    1.方便备份数据

                    2.方便对数据的统一分析。 

    GTID工作原理

            1.master更新数据时,会在事务前产生GTID,一同记入到Binlog日志中。

            2.slave端的I/O线程将变更的binlog,写入到本地的relay log中

            3.然后SQL线程从relay  log中读取GTID,设置GTID_next的值为该GTID,然后对比Slave端的binlog是否有记录。

            4.如果有记录的话,说明该GTID的事务已经运行,slave会记录

            5.如果没有记录的话,slave就会执行该GTID对应的事务,并记录到binlog中。

    MyISAM和InnoDB的主要区别:

            1.MyISAM是非事务安全型的,而InnoDB是事务安全型的。

            2.MyISAM锁的粒度是表级的,而InnoDB支持行级别锁定。

            3.MyISAM不支持foreign(外健),而InnoDB支持外健

            4.MyISAM相对简单,所以在效率上优于InnoDB.

            5.MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。

    相关文章

      网友评论

        本文标题:Mysql主从复制原理

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