主从复制基本原理
1、MySQL将数据变化记录到二进制日志中;
2、Slave 将MySQL的二进制日志写到 Slave 的中继日志中;
3、Slave 读取中继日志,将更新的内容解析成具体操作,反应到自身(Slave)的数据库。
主从复制原理图如下:
主从复制详细过程:
1、Slave 端的 I/O 线程连接上 Master,向 Master 请求指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
2、Master 接收到来自 Slave 的 I/O线程的请求后,负责复制的 I/O 线程根据 Slave 的请求信息,读取相应日志内容,返回给 Slave 的 I/O 线程,并将本次请求读取的 bin-log 文件名及位置一起返回给 Slave 端;
3、Slave 端的 I/O 线程接收到信息后,将接收到的日志内容依次添加到 Slave 端的 relay-log(中继日志) 文件的最末端,并将读取到的 Master 端的 bin-log 的文件名和位置记录到 master-info 文件中,以便之后清楚告诉 Master 端要将 bin-log文件 发送起始位置是从哪里开始;
4、Slave 端的 SQL线程检测到 relay-log (中继日志)中新增加了内容后,会马上解析 relay-log 的内容成为在 Master 端真实执行时候的那些可执行的内容,并在本地执行。
来源:oschina
链接:https://my.oschina.net/u/4263001/blog/4922743