MySql面试精选—主从复制

目录

1、什么是MySQL主从复制

2、MySQL主从复制模式有哪些

3、MySQL主从复制原理图


1、什么是MySQL主从复制

MySQL主从复制, 指把数据从一个MySQL主服务器(master主节点)复制到一个或多个MySQL从服务器(slove从节点),这就是MySQL主从复制。

主从复制会把主服务器中的所有数据库实例、特定数据库实例或特定表等,全部复制到从服务器。

2、MySQL主从复制模式有哪些

MySQL主从复制模式主要会包含:异步复制、半同步、以及全同步复制三种复制模式。​​​​​​​

MySQL默认复制是异步,主库在执行完客户端提交的事务后会立即将结果返给给客户端。

1)MySQL异步复制

这种方式并不关心从库是否已经接收并处理,这样就会导致一个问题,主服务器如果Crash掉了,此时主上已经提交的事务可能并没有传到从库上。(这个问题由后面的半同步复制来解决)

2)半同步复制

半同步复制介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到Relaylog中才返回给客户端。​​​​​​​

相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。
所以,半同步复制最好在低延时的网络中使用。

3)全同步复制:是指当主库执行完一个事务,然后所有的从库都复制了该事务并成功执行完才返回成功信息给客户端。因为需要等待所有从库执行完该事务才能返回成功信息,所以全同步复制的性能必然会受到严重的影响。

3、MySQL主从复制原理图

 

复制过程如下所示:

1) 当 master 主服务器上的数据发生改变时,则将其改变写入二进制日志文件中; 

2) salve 从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变; 

3) 如果探测到 master 主服务器的二进制日志发生了改变,则开始一个 I/O Thread 请求 master 二进制日志; 

4) 同时 master 主服务器为每个 I/O Thread 启动一个dump Thread,用于向其发送二进制日志; 

5) slave 从服务器将接收到的二进制日志保存至自己本地的中继日志文件中; 

6) salve 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致; 

7) 最后 I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒。

以上!

关注公众号 + 输入[面试题] + 免费领取全部面试资料(面试答案)!  

往期文章:

MySql面试精选—分库分表

MySql面试精选—索引使用注意事项

MySQL面试精选-架构

MySQL面试精选-MVCC

MySQL面试精选-锁

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老王随聊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值