mysql之mysql主从基于位置复制原理概述

  

  1,主从复制简介
  MySQL主从复制就是将一个MySQL实例(主)中的数据实时复制到另一个MySQL实
  例(奴隶)中,而且这个复制是一个异步复制的过程。
  实现整个复制操作主要由三个进程完成的,其中两个进程在奴隶(sql_thread和
  IO_thread),另外一个进程在主(IO进程)上。
  2,主从复制原理,机制
  要实施复制,首先必须打开主端的二进制日志(bin-log)功能,否则无法实现。
  因为整个复制过程实际上就是奴隶从主端获取该日志然后再在自己身上完全顺序的
  执行日志中所记录的各种操作。
  复制的基本过程如下:
  1),奴隶上面的IO_thread连接上的主人,并请求从指定日志文件的指定位置(或者
  从最开始的日志)之后的日志内容,
  2),主接收到来自奴隶的IO_thread的请求后,通过负责复制的IO进程根据请
  求信息读取指定日志指定位置之后的日志信息,返回给奴隶的IO_thread。返回信息中除
  了日志所包含的信息之外,还包括本次返回的信息已经到主端的bin-log文件的以及
  bin-log pos;
  3),奴隶的IO_thread接收到信息后,将接收到的日志内容依次添加到奴隶端的
  relay-log文件的最末端,并将读取到的主端的bin-log的文件名和位置记录到
  master-info文件中,以便在下一次读取的时候能够清楚的告诉大师”我需要从某个
  bin-log的哪个位置开始往后的日志内容,请发给我”;
  4),奴隶的Sql_thread检测到relay-log中新增加了内容后,会马上解析relay-log
  的内容成为在主端真实执行时候的那些可执行的内容,并在本数据库中执行。   

  

  3、主从复制原理图   

  

   mysql之mysql主从基于位置复制原理概述”>
  </p>
  <p>
  <img src=mysql之mysql主从基于位置复制原理概述