MySQL Replication-理论基础

前言:很多公司在最开始的时候,网络架构模型一般都是一个LAMP就够用了,之后业务规模越来越大,就会遇到扩展这个问题。

一般有两个选择:

scale up是针对服务器进行硬件上的提升,这是一个非常不理想的扩展方式

  • 硬件水平提升代价太大
  • 性能只能提升到某个程度

scale out这种扩展方式是增加服务器,架设集群

  • 花费的代价小
  • 性能提升大
  • 如果之前是单服务器,现在组成集群还可以实现业务的高可用

标准的说:用廉价的X86组成高性能,高可用集群

MySQL Replication一般分为:

图中箭头指向表示数据复制方向 都是Slave复制Master的数据,然后再向外提供查询请求

MySQL Replication的工作模式

同步:

异步(默认异步):

MySQL的主从同步是依靠MySQL的复制功能。

复制原理:

MySQL除了数据文件还会有其他的日志文件,比如说事务日志,慢查询日志。

Bingary log(二进制日志)也是其中一种,二进制日志是将对数据库进行的DML(select除外)、DDL操作都会记录到其中,说明白点就是当前服务器的数据修改和有潜在可能性影响数据修改的语句都会被记录其中,而且这个文件可以被修改和重放(将里面的纪录重新运行一遍),这样一来。二进制日志的作用就大了。一般来说,增量备份和复制都需要用到二进制日志

Relay log(中继日志)其实就是Slave将Master的Bingary log日志复制过来。然后在Slave中存下来,就叫做中继日志。

有了上面的基础。就可以讲一下上面那张图了

这个图只是对应最简单的主从同步,当然,多级复制也差不多这样,只是Slave也开启了Bingary log功能。 实现的话,下一篇将详细介绍