【DB笔试面试429】MySQL的复制原理(Replication)以及流程是什么样的?
- 2019 年 10 月 11 日
- 筆記
MySQL的复制原理(Replication)以及流程是什么样的?
答案
MySQL的复制原理:Master上面事务提交时会将该事务的Binlog Events写入Binlog文件,然后Master将Binlog Events传到Slave上面,Slave应用该Binlog Events实现逻辑复制。
MySQL的复制是基于如下3个线程的交互(多线程复制里面应该是4类线程):
① Master上面的Binlog Dump线程,该线程负责将Master的Binlog Events传到Slave;
② Slave上面的I/O线程,该线程负责接收Master传过来的二进制日志(Binlog),并写入中继日志(Relay Log);
③ Slave上面的SQL线程,该线程负责读取中继日志(Relay Log)并执行;
如果是多线程复制,无论是MySQL 5.6库级别的假多线程还是MariaDB或者5.7的真正的多线程复制,SQL线程只做Coordinator,只负责把中继日志(Relay Log)中的二进制日志(Binlog)读出来然后交给Worker线程,Woker线程负责具体Binlog Events的执行。
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步