MySQL数据库中从复制原理与问题(面试题)

主从复制原理

复制用途

  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.  **数据丢失**的问题可以修改异步复制为半同步复制。
    

参考

[1]:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值