MySQL——主从模式原理解析到基本配置

1. 什么是MySQL主从模式

先看一张图:

MySQL——主从模式原理解析到基本配置_第1张图片


其实原理和服务的主从模式一致,一个master配多个slave。
MySQL主从模式的好处主要有:

  1. 数据备份,提高数据安全性
  2. 读写分离,master负责业务的写请求,slaver负责业务中的读请求。提高系统吞吐量
  3. 架构拓展,单机的I/O能力 网络资源 CPU都是有限的,通过主从可以让从库来分担读请求。

2. MySQL主从模式的原理

  • binlog: binary log 它是主库记录所有更新操作(增删改)日志的二进制日志文件,是主从模式的基础。
  • MySQL主从同步是一个异步操作,所以会存在主从数据不一致的情况,刚写入到master的数据,立即查询slaver可能是查不到的,因为数据还没同步过来。
  • binlog输出线程:当有一个slaver连到master时,master会创建一个线程将binlog的数据push到slaver,注意这里是master主从将数据push推到slaver,而不是slaver自己去master拉取。主从在读取binlog的一个sql事件时会对对其加锁,读取完成才释放锁。
  • 当复制开始时,slaver会创建两个线程:
    1. I/O 线程:slaver接收master发送过来的binlog更新操作,将其拷贝到本地文件中包括relay log
    2. SQL线程:读取relay log里面的内容 执行SQL更新操作,也就是就行数据同步。

      两个线程互相独立,一个负责读取master过来的更新操作,并持久化到本地relay log中,另一个则进行SQL操作。

      当一个新的slaver连接到MySQL时,会有大量的binlog传输过来。slaver进行SQL更新操作的速度可能跟不上,但是由于两个线程互相独立且有relay log缓冲,slaver 可以慢慢执行追上master。

主从复制的配置可以参考博客:
https://www.cnblogs.com/zhoujie/p/mysql1.html

你可能感兴趣的:(mysql)