mysql主从复制框架图及原理理解

数据库 waitig 480℃ 百度已收录 0评论

一、主从复制前提

1、主服务期一定要打开二进制日志
2、必须两台服务器(或者是多个实例)
3、从服务器需要一次数据初始化
3.1如果主从服务器都是新搭建的话,可以不做初始化
3.2如果主服务器已经运行了很长时间了,可以通过备份将主库数据恢复到从库。
4、主库必须要有对从库复制请求的用户。
5、从库需要有relay-log设置,存放从主库传送过来的二进制日志
6、在第一次的时候,从库需要change master to 去连接主库。
7、change master信息需要存放到master.info中 
8、从库怎么知道,主库发生了新的变化?通过relay-log.info记录的已经应用过的relay-log信息。
9、在复制过程中涉及到的线程
从库会开启一个IO thread,负责连接主库,请求binlog,接收binlog并写入relay-log。
从库会开启一个SQL thread,负责执行relay-log中的事件。
主库会开启一个dump thrad,负责响应从IO thread的请求。

二、主从复制原理

1、从库通过手工执行change master to 语句连接主库,提供了连接的用户一切条件(user、password、port、ip),并且让从库知道,二进制日志的起点位置(file名  position号)
2、从库的IO线程和主库的dump线程建立连接
3、从库根据change master to 语句提供的file名和position号,IO线程向主库发起binlog的请求
4、主库dump线程根据从库的请求,将本地binlog以events的方式发给从库IO线程
5、从库IO线程接收binlog evnets,并从放到本地relay-log中,传送过来的信息,会记录到master.info中。
6、从库SQL进程应用relay-log,并且把应用过的记录到relay-log.info,默认情况下,已经应用过的relay会自动被清理purge。
至此为止,一次主从复制便已经完成。一旦主从运行起来,就不需要手工执行change master to,因为信息都会被存放到master.info中,其他的过程都是一样的。

三、主从复制框架图


如果哪里有不懂的,请加群交流,群号:374136223


本文由【waitig】发表在等英博客
本文固定链接:mysql主从复制框架图及原理理解
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)