什么是主从复制
主从复制就是指一个数据库服务器的数据复制到其它数据库服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)
主从复制的好处
-
数据备份,当主服务器突发故障时,数据丢失可通过从服务器恢复数据
-
减轻主服务器压力,使用从服务器进行一部分的读操作,主服务器进行写操作,从而减轻主服务器的访问压力
主从复制原理
当从服务器连接到主服务器时,主服务器会为从服务器开启一个log dump线程,用于读取并发送bin-log日志的内容,主服务器会为每一个从服务器都开启一个log dump线程
从服务器会开启一个I/O线程连接到主服务器上,请求主库中更新的bin-log。I/O线程接收到主服务器的log dump线程发来的更新之后,保存在本地的relay-log(中继日志)中
从服务器还会有一个sql线程负责读取relay-log中的内容,并将其解析成具体的操作并执行,最终保持数据的一致性
主从复制基本过程
-
从节点执行start slave命令后开启主从复制开关,开始进行主从复制。从节点的I/O进程连接主节点,并请求指定文件的指定位置(或最开始的日志)之后的日志内容
-
主节点接收到来自从节点的I/O请求后,通过负责复制的I/O线程(即log dump线程)根据请求指定日志指定位置之后的日志信息,返回给从节点。返回信息除了日志所包含的信息之外,还包括本次返回的信息