欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > MySql主从复制原理

MySql主从复制原理

2025/5/21 11:06:46 来源:https://blog.csdn.net/gulanga5/article/details/142432151  浏览:    关键词:MySql主从复制原理

  mysql主从复制原理:
  1.主库会创建一个log dump 线程,用来给产生binlog 数据
  2.从库会生成两个线程(一个读取binlog数据的IO线程,一个执行relay log操作的SQL线程)
     IO线程:从主库中读取binlog数据存储到从库的relaylog中。
     SQL线程:解析relaylog中的操作,并在从库中执行操作实现数据主从数据同步

主库会生成一个 log dump 线程,用来给从库 I/O 线程传 Binlog 数据。

从库的 I/O 线程会去请求主库的 Binlog,并将得到的 Binlog 写到本地的 relay log (中继日志)文件中。

SQL 线程,会读取 relay log 文件中的日志,并解析成 SQL 语句逐一执行。

主节点 log dump 线程

当从节点连接主节点时,主节点会为其创建一个 log dump 线程,用于发送和读取 Binlog 的内容。在读取 Binlog 中的操作时,log dump 线程会对主节点上的 Binlog 加锁;当读取完成发送给从节点之前,锁会被释放。 主节点会为自己的每一个从节点创建一个 log dump 线程 。

从节点I/O线程

当从节点上执行 start slave 命令之后,从节点会创建一个 I/O 线程用来连接主节点,请求主库中更新的Binlog。I/O 线程接收到主节点的 log dump 进程发来的更新之后,保存在本地 relay-log(中继日志)中。

relay log

这里又引申出一个新的日志概念。MySQL 进行主主复制或主从复制的时候会在要复制的服务器下面产生相应的 relay log。

relay log 是怎么产生的呢?

从服务器 I/O 线程将主服务器的 Binlog 日志读取过来,解析到各类 Events 之后记录到从服务器本地文件,这个文件就被称为 relay log。然后 SQL 线程会读取 relay log 日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致。中继日志充当缓冲区,这样 master 就不必等待 slave 执行完成才发送下一个事件。

relay log 相关参数查询:

https://www.cnblogs.com/zouhong/p/16171808.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词