您的位置:首页 > 职场人生

面试宝典系列-MySql主从复制原理

2018-08-14 11:04 676 查看
实现原理图大致如下(来源网络):



复制过程:

主服务器必须启用二进制日志,记录所有修改数据库的事件

主服务器创建一个I/O线程,从服务器创建一个I/O线程和一个SQL线程

从服务器上的I/O线程连接上主服务器,并告诉主服务器日志读取偏移位

主服务器I/O线程检查该值是否小于当前二进制日志偏移位

如果小于,则读取偏移位之后的数据给从服务器的I/O线程

从服务器I/O线程将读取到的数据依次写入到中继日志中,并记录当前偏移位(下次使用)

从服务器的SQL线程发现中继日志中新增了内容,则立即解析日志的新增内容,并依次执行。(从服务器和主服务器执行的都是相同的sql,保证了数据的一致性)

小结:

主从复制是异步的逻辑的SQL语句级的复制

复制时,主库有一个I/O线程,从库有两个线程,I/O和SQL线程

实现主从复制的必要条件是主库要开启记录binlog功能

作为复制的所有Mysql节点的server-id都不能相同

binlog文件只记录对数据库有更改的SQL语句(来自主库内容的变更),不记录任何查询(select,show)语句

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL