青蛙学Linux—MySQL主从复制

MySQL主从复制基于MySQL官方提供的MySQL Replication技术,实现了数据从一个主服务器向一个或多个从服务器的同步。主从复制不仅是一种备份方式,更为MySQL高可用提供了数据同步的基础。

1、MySQL Replication原理

在MySQL Replication中,主服务器称为Master,从服务器称为Slave。Slave会从Master上拉取MySQL的二进制日志文件(Binary Log),然后将该日志解析为SQL语句并完全顺序的执行这些SQL语句以达到与Master上执行同样的SQL的效果,保证数据的一致性。

整个过程具体如下:

  1. Slave上起一个IO线程,连接Master,然后请求从指定位置开始的Binary Log内容
  2. Master在接收请求之后读取指定位置开始的Binary Log内容并通过自身的IO线程返回给Slave的IO线程,返回的信息不仅包括Binary Log日志中的内容,还包括Binary Log日志的名称和这些信息在Binary Log中的位置
  3. Slave在接收到信息后,将获取到的Binary Log内容写入Relay Log中(名为mysql-relay-bin.xxx的文件),并将Binary Log的文件名和这些信息在Binary Log中的位置记录到名为master-info的文件中
  4. Slave的SQL线程在监测到Relay Log的更新后会马上解析Relay Log并生成SQL语句,然后执行这些SQL语句。至此,整个主从复制过程结束

虽然MySQL的主从复制是异步的,但其性能非常高效,延时非常小。

注意:Slave会从Master上拉取Binary Log,所以在Master上必须开启MySQL的Binary Log功能。

猜你喜欢

转载自www.cnblogs.com/yu2006070-01/p/10336146.html