MySQL主从同步原理

1.什么是主从同步

    当master(主)数据库的数据发生变化时,数据会实时同步到slave(从)库

2.主从同步的好处

  1. 水平扩展数据的负载能力
  2. 容错,高可用,Failover(失败切换)/High Availability
  3. 数据备份

3.主从同步的原理

     3.1-主从同步体系结构

MySQL主从同步原理_第1张图片

    3.2-针对数据库的操作(delete,insert,update,创建函数,创建存储过程等) 都在master数据库上操作,当master上有

操作时,slave会快速的结束这些操作,从而做到同步;

    3.3-在master机器上,主服务器会把所有的数据库发生改变的操作写到特殊的log文件中去(binary-log),slave机器

读取binary-log日志文件中记录的数据库发生改变的操作,并在slave机器上执行这些操作,从而保证了主从数据库的数据

同步

4.主从同步原理中涉及的一些概念

     4.1-主从同步事件类型(三种)

            (1)statement :会将对数据库操作的sql语句写入到binary-log日志文件

            (2)row:会将每一条数据的变化写入到binary-log日志文件

            (3)mixed:statement与row的混合;Mysql决定什么时候写statement格式的,什么时候写row格式的binlog

    4.2-当master机器上数据发生变化时,master机器会按照操作顺序记录数据发生变化(delete,upate,insert)的操作

到binary-log日志文件中去

   4.3-当slave机器连接到master机器上时,master机器会为slave机器开启binlog dump线程,当binary-log上数据

发生变化时,binlog dump线程会通知slave机器,并将发生变化的binary-log内容发送给slave机器

   4.4-当主从同步开启时,slave机器会创建两个线程

          (1)I/O线程:该线程连接到master机器,master机器的binlog dump线程会把binary-log日志文件的内容

发送给该I/O线程;该I/O线程接受到binary-log日志文件的内容后,再将其写入到本地的relay-log日志文件中

          (2)SQL线程:该线程读取I/O线程写入的relay-log日志文件,再根据其内容对slave数据库进行操作

  4.5-可以通过SHOW PROCESSLIST命令查看master机器和slave机器上各自的线程

MySQL主从同步原理_第2张图片

MySQL主从同步原理_第3张图片 

5.主从同步的原理图

MySQL主从同步原理_第4张图片

你可能感兴趣的:(MySql,MySQL,主从)