本文主要介绍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主从同步实战。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。