Mysql主从同步的实现原理

Mysql主从同步的实现原理

本文主要介绍Mysql主从同步的原理。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

1.什么是mysql主从同步?

当主库中的数据发生变化时,这些变化将实时同步到从库中。

2、主从同步有什么好处?

扩展水平数据库的负载能力。

容错和高可用性。故障转移/高可用性

数据备份。

3、主从同步的原理是什么?

首先,我们来了解一下主从架构。

如下图:

无论是删除、更新、插入,还是创建函数或存储过程,所有操作都在主机上进行。当主设备有操作时,从设备将快速接收这些操作并同步它们。

但是,这个机制是怎么实现的呢?

在主机上,主从同步事件会被写入一个专门的日志文件(binary-log);在从机上,从机读取主从同步事件,并根据读取事件的变化在从库中做出相应的改变。

这样就实现了主从同步!

让我们仔细看看。

3.1什么是主从同步事件?

上面写着:

在主机上,主从同步事件会被写入一个专门的日志文件(binary-log);

主从同步事件有三种形式:语句、行和混合。

语句:数据库操作的sql语句将被写入binlog。

Row:每条数据的变化都将被写入binlog。

混合:语句和行的混合。决定Mysql什么时候写语句格式,binlog写行格式。

3.2主机上的操作

当master上的数据发生变化时,该事件的变化(插入、更新、删除)将依次写入binlog。

binlog dump线程

当从机连接到主机时,主机将为从机打开binlog转储线程。当主设备的二进制日志发生变化时,二进制日志转储线程将通知从设备,并将相应的二进制日志内容发送给从设备。

3.3在slave机器上的操作

当主从同步开启时,从机将创建两个线程。

输入输出线程。这个线程连接到主机,主机上的binlog转储线程会将binlog的内容发送到这个I/O线程。I/O线程接收binlog内容,然后将内容写入本地中继日志。

SQL线程。这个线程读取I/O线程写的中继日志。根据中继日志的内容,对从数据库进行相应的操作。

3.4如何在主从上查看上述线程?

使用SHOW PROCESSLIST命令查看。

如图所示,检查主机上的binlog转储线程。

如图所示,查看从机上的I/O和SQL线程。

4、讲了这么多,一图以蔽之

5、关于实战

实战可以参考我的另一篇文章:Mysql主从同步实战。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

Mysql主从同步的实现原理