青蛙学Linux—MySQL主从复制

Posted 青蛙学Linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了青蛙学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功能。

以上是关于青蛙学Linux—MySQL主从复制的主要内容,如果未能解决你的问题,请参考以下文章

青蛙学Linux—MySQL常用命令

青蛙学Linux—进程管理

青蛙学Linux—Nginx配置文件详解

20160916-3:mysql主从复制

青蛙学Linux—用户组权限和文件属性

青蛙学Linux—Zabbix部署之安装和配置Zabbix