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

1:MySQL的复制原理

时间:2019-02-20 18:34:58      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:sql   cat   二进制日志   复制   记录   http   释放   ofo   中继日志   

MySQL官网链接:https://dev.mysql.com/doc/refman/5.7/en/replication-implementation-details.html
MySQL复制功能使用三个线程实现,一个在master上,两个在slave上:

  • Binlog dump thread
    • master创建此线程,以便在slave连接时将二进制日志内容发送到slave.master上的SHOW PROCESSLIST的输出中将此线程标识为Binlog Dump线程。
    • 此线程获取master二进制日志上的一个锁,以便读取发送到slave的每个事件。一旦读取了事件,即使在事件发送到slave之前,锁也会被释放。**
  • Slave I/O thread
    • 在slave上发出START SLAVE语句时,slave会创建一个I/O线程,该线程连接到master并要求它发送二进制日志中记录的更新。
    • 此线程读取master的Binlog Dump thread发送的更新(请参阅上一项)并将它们复制到包含slave的中继日志的本地文件中。
    • 该线程的状态在SHOW SLAVE STATUS的输出中显示为Slave_IO_running,或者在SHOW STATUS的输出中显示为Slave_running
  • Slave SQL thread.
    • slave创建一个SQL线程来读取由Slave I/O thread写入的中继日志,并执行其中包含的事件。

NEXT:2:基于二进制日志文件位置的复制 http://blog.51cto.com/itzhoujun/2351367

1:MySQL的复制原理

标签:sql   cat   二进制日志   复制   记录   http   释放   ofo   中继日志   

原文地址:http://blog.51cto.com/itzhoujun/2352587

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