码迷,mamicode.com
首页 > 数据库 > 详细

MySQL复制原理

时间:2017-07-13 21:41:26      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:log   安全   strong   mysql复制   replicat   发送   速度   http   syn   

参考官网:https://dev.mysql.com/doc/refman/5.7/en/replication-implementation-details.html

MySQL复制功能是通过三个线程实现的,包括主上的binlog dump tread和从上的sql thread、I/O ttread

Binlog dump thread

master创建binlog dump thread,用于 当slave连接到master时发送binlog events给其,dump thread每次读取将要发送给slave的每个event时

先获得lock在binary log,读完之后再 释放。

Slave I/O thread

当执行 START SLAVE 在slave端执行后,slave会创建I/O thread  连接到master主动读取dump thread将最新的binlog events写到本地的relay log中

Slave SQL thread

slave创建SQL thread从relay log中读取event并应用

 

I/O thread读取event的速度并不因为server执行的慢而变慢,即使slave的I/O thread 停止一会,当再次开启的时候也能迅速的获取master中所有

最新的binlog内容到relay log,即使SQL thread有很大的延迟。如果slave在SQL thread运用完所有的relay log之前停止了,I/O thread至少获取到

了到目前为止在master上所发生的所有事务日志到relay  log,保证安全复制,到slave 下次启动时接着应用。

如果maser  通过show processlist看不到binlog dump thread,则说明复制已经停了。

MySQL复制原理

标签:log   安全   strong   mysql复制   replicat   发送   速度   http   syn   

原文地址:http://www.cnblogs.com/Bccd/p/7163128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!