分享

MySQL主从复制

 LGPL 2022-09-26 发布于北京

MySQL 主从复制

MySQL主从复制具体的过程为master启动dump线程,和slave的IO的线程建立连接,把master的bin log传递给slave,slave的IO的线程将从master得到的数据,写到本地的relay log(中继日志)中,之后slave的SQL线程对本地的relay log 进行回放。为了方便MySQL识别主从,即MySQL做主从复制,他们的server id不一样

MySQL主从复制的必要条件

master

  • server id: 区别主从服务
  • bin log: 记录master的写操作,并同步给从
  • dump thread: 与从服务器的IO thread 建立连接,负责把本地bin log发送给slave 的IO thread

slave

  • server id:区分主从服务
  • relay log: 中继日志,负责从存储IO线程读过来的数据。但SQL线程一回放完中继日志的内容,中继日志内容不保存
  • io thread:从master获取数据,并保存在本地的relay log中
  • sql thread:负责回放本地的relay log

MySQL server-id参数的额外说明

server-id 本质区分每个MySQL
当MySQL使用双主互为主从的时候,会出现写循环。即master 写入,会在slave回放,但回放的同时slave会写入bin log,主会拉取slave写入的bin log数据,写入本地的relay log,然后回放,又写入bin log依次会陷入循环。而server id是标识mysql,当mysql 拉取的binlog中的server-id,发现是自己的server id,就不会拉取

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多