mysql主从复制原理

主从复制涉及到的文件和线程

主库:

1)主库binlog:记录主库发生过的修改事件

2)dump thread:给从库传送(TP)二进制日志线程

从库:

1)relay-log(中继日志):存储所有主库TP过来的binlog事件

2)master.info:存储复制用户信息,上次请求到的主库binlog位置点

3)IO thread:接收主库发来的binlog日志,也是从库请求主库的线程

4)SQL thread:执行主库TP过来的日志

1)通过change master to语句告诉从库主库的ip,port,user,password,file,pos

2)从库通过start slave命令开启复制必要的IO线程和SQL线程

3)从库通过IO线程拿着change master to用户密码相关信息,连接主库,验证合法性

4)从库连接成功后,会根据binlog的pos问主库,有没有比这个更新的

5)主库接收到从库请求后,比较一下binlog信息,如果有就将最新数据通过dump线程给从库IO线程

6)从库通过IO线程接收到主库发来的binlog事件,存储到TCP/IP缓存中,并返回ACK更新master.info

7)将TCP/IP缓存中的内容存到relay-log中

8)SQL线程读取relay-log.info,读取到上次已经执行过的relay-log位置点,继续执行后续的relay-log日志,执行完成后,更新relay-log.info

原文地址:https://www.cnblogs.com/--smile/p/11811684.html