MySQL主从复制原理解析

主从复制好处:
一、数据备份。
二、架构扩展
三、读写分离
 
原理:
1、数据库有一个bin-log二进制文件,记录了所有的sql语句
 
2、目标是把主数据库的bin-log日志文件的sql语句复制过来
 
3、让其在从数据库的relay-log重做日志文件中再执行一次这些sql语句
 
具体需要三个线程来处理:
bin-log输出线程,每当从库连接到主库的时候,主库都会创建一个线程发送bin-log内容进行处理
 
从库里当复制开始的识货,从库会创建两个线程进行处理:
② 从库I/O线程
当START SLAVE 语句在从库开始执行之后,从库创建一个I/O线程,主要用于连接到主库并请求主库发送bin-log里面的更新记录到从库上,从库I/O线程读取主库的bin-log输出线程放的更新并拷贝这些更新到本地文件,其中包括relay log文件
 
 
③ 从库SQL线程
 
这个线程主要用户读取从库I/O线程写到realy log 的更新事件并执行。
 
可以知道,对于每个主从复制的链接,都有三个线程。拥有多个从库的主库为每个连接到主库的从库创建一个 bin-log输出线程,每个从库都有它自己的I/O线程SQL线程去处理。
 
 
 
详细分解:
步骤1:主库DB更新事件写入binlog日志文件
步骤2:从库链接主库
步骤3:主库创建binlog输出线程发给从库binlog日志内容
步骤4:从库创建I/O线程读取主库传过来的bin-log内容并写入从库relay log
步骤5:从库还会创建一个SQL线程从relay log中读取内容从Exec_Master_Log_Pos位置开始执行读取到的更新时间,将更新内容写入从库DB中。

posted on 2017-11-14 10:34  oceanL  阅读(191)  评论(0编辑  收藏  举报

导航