• Mysql数据库的主从复制


    一)为什么要有Mysql主从复制?

      因为单台的数据库服务器需要承载客户端的读取和写入操作的请求,那么若客户端请求过多,那么服务器就会崩溃导致宕机、那么可以选择Mysql数据库集群的方式来增加Mysql服务处理数据的效率。

    二)主从复制原理?

    1、在每个事务更新之前,master再二进制文件中记录这些改变,写入二进制文件完成后,master通知存储引擎提交事务;

    2、slave开启一个I/O线程,I/O线程再master的binlog中读取事件,如过已经跟上master,他会睡眠等待master产生新的事件,I/O线程将产生的新事件写入到中继日志中。(中继日志一般存放在os的缓存,所以开销比较小)

    3、slave中的sql线程在中继日志中读取事件,并重放其中事件而更新slave的数据,使其与master中的数据保持一致;

    复制类型:

    1、基于语句的复制

    2、基于行的复制

    3、混合类型的复制

    主从复制方式:

    基于二进制文件:二进制日志文件;

    基于GTID方式:在5.6版本开启的新的方式

    工作过程:

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

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

    3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。

    4、如果有记录,说明该GTID的事务已经执行,slave会忽略。

    5、如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。

    6、在解析过程中会判断是否有主键,如果有就用二级索引,如果没有就用全部扫描。

    优势:

    1、更简单的实现failover,不用以前那样在需要找二进制日志文件log_file和位置值log_pos。

    2、比传统的复制更加安全可靠。

    3、GTID是连续的没有空洞的,保证数据的一致性,零丢失。       

    4、slave无需知道master的pos值和日志文件值,只需要知道master的ip、用户名、密码即可;

  • 相关阅读:
    ElasticSearch6.5.0【Java客户端之TransportClient】
    ElasticSearch6.5.0 【安装IK分词器】
    ElasticSearch6.5.0 【字段类型】
    不能说的秘密
    渔已经给你们了 剩下的鱼靠你们自己来
    Xshell使用笔记
    Potplayer使用教程
    爱真的需要勇气
    中文字体练习好看的手写字
    一些学习方法
  • 原文地址:https://www.cnblogs.com/oopkop/p/12730500.html
Copyright © 2020-2023  润新知