美文网首页
mysql的主从复制原理及问题

mysql的主从复制原理及问题

作者: 美雨知春 | 来源:发表于2020-12-20 14:49 被阅读0次

    复制用途

    1. 实时备份
    2. 读写分离

    复制模式

    MySQL大概有三种复制模式:

    1. 异步复制,默认方式就是异步复制。主库在执行完客户端提交的事务后立即将结果返回给客户端,不关心从库是否已经接受并且处理。
    2. 全同步复制。 主库执行完一个事务,所有的从库都执行完之后才返回给客户端。
    3. 半同步复制。 主库执行完事务后,至少等待一个从库节点把binlog刷到replaylog文件才返回给客户端。

    复制原理

    复制过程一共需要三个线程。Master端写binlog线程,slave端IO线程和SQL线程。


    在这里插入图片描述

    大概流程如下:

    1.  slave端IO线程读取master.info文件,获取binlog的文件名和位置点,然后向master的IO线程请求binlog文件名和位置点。
      
      
    2.  Master端的IO线程会根据slave提供的信息和最新文件名和位置点发送给slave的IO线程
      
      
    3.  Slave的IO线程会把获取到的binlog的日志写到replaylog中,然后更新master.info信息
      
      
    4.  QL线程会定期去读取replay log,把二进制的日志解析成SQL语句,并且同步到从库中
      
      
      在这里插入图片描述

    主从同步会出现的问题

    1.  数据复制延迟的问题
      
      
    2.  主库宕机,数据丢失的问题。
      
      

    主从同步问题解决方案

    1.  **数据复制延迟**的问题可以通过升级数据库版本来解决,set global slave_parallel_workers=15;
      
      
    2.  **数据丢失**的问题可以修改异步复制为半同步复制。
      

    相关文章

      网友评论

          本文标题:mysql的主从复制原理及问题

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