Mysql主从复制机制原理

Mysql主从复制的用途

  • 实施灾备,用于故障切换
  • 读写分离用于查询服务
  • 备份,避免数据丢失

 

Mysql主从复制的条件

  • 主库开启binlog日志(从库需要从这里面读取)
  • 主从的Mysql server-id需要不同
  • 从库服务器能连通主库

 

Mysql主从复制原理

 

 

  1. 主库接收用户做crud操作,写入数据库,更新结果集到binlog中
  2. 主从同步是主找从的,从库IO发起请求,主库的主进程看从库 master change中给的参数是否合法,如果合法主进程交给IO进程执行 3 操作,否则拒绝处理
  3. 主库根据master的位置点,从这个位置点的binlog日志一直到binlog日志最后,将其准备发送给从库。
  4. 将找到的binlog日志发送个i从库,并且还会发送新的日志点。
  5. 从库接收到binlog日志,将其写入realy-log(中继日志)中。
  6. 从库IO进程再向master info保存主库传过来的最后的binlog日志的日志位置点。
  7. 从库IO时循环发起请求的,发了再要,不会管SQL读取中继日志的操作。从库IO根据新的日志点,向主库发起请求,主库执行 3 4 操作,再发送新的binlog给从库,从库再执行5操作。
  8. 其实第一次向relay-log中放数据时候,SQL进程就已经知道,SQL进程将relay-log中的SQL语句转换成数据,写入从库,从而实现同步。
  9. 从库SQL线程读取中计日志,并不会一次性读完,会把读取到的日志点存放到relay-log.info中
posted @ 2020-03-30 16:47  Arebirth  阅读(1090)  评论(0编辑  收藏  举报