DevOps开发运维
成长之路

MySQL主从复制的原理Classic Replication

主从中涉及到的文件

主库:二进制日志(mysql-bin.000001)
从库:
db01-relay.000001 中继日志
master.info 主库信息记录日志
relay-log.info 记录中继应用情况信息

主从中涉及到的线程

主库
Binlog_Dump_Thread:DUMP线程
从库
Slave_IO_Thead:IO线程
Slave_SQL_Thread:SQL线程

主从复制原理描述

1.change master to 时,ip port user password binlog position写入到master.info进行记录
2. start slave 时,从库会启动IO线程和SQL线程
3.IO_T,读取master.info信息,获取主库信息连接主库
4. 主库会生成一个准备binlog DUMP线程,来响应从库
5. IO_T根据master.info记录的binlog文件名和position号,请求主库DUMP最新日志
6. DUMP线程检查主库的binlog日志,如果有新的,TP(传送)给从从库的IO_T
7. IO_T将收到的日志存储到了TCP/IP 缓存,立即返回ACK给主库 ,主库工作完成
8.IO_T将缓存中的数据,存储到relay-log日志文件,更新master.info文件binlog 文件名和postion,IO_T工作完成
9.SQL_T读取relay-log.info文件,获取到上次执行到的relay-log的位置,作为起点,回放relay-log
10.SQL_T回放完成之后,会更新relay-log.info文件。
11. relay-log会有自动清理的功能。
细节:主库一旦有新的日志生成,会发送“信号”给binlog dump ,IO线程再请求
赞(1)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图