复制

MySQL 复制的优势包括:

MySQL 5.7 支持不同的复制方法:

  • 传统的方法基于从主节点的二进制日志中复制事件,需要在主节点和副本之间同步日志文件和文件中的位置

  • 基于全局事务标识符(GTIDs)的新方法是事务性的,因此不需要处理日志文件或这些文件中的位置,这极大地简化了许多常见的复制任务。使用GTIDs进行复制可以保证在源上提交的所有事务也已在副本上应用,从而保证源和副本之间的一致性。

MySQL 中的复制支持不同类型的同步:

  • 最初的同步类型是单向异步复制,其中一个服务器充当主节点,而一个或多个其他服务器充当副本。

  • 在 MySQL 5.7 中,除了内置的异步复制之外,还支持半同步复制。使用半同步复制时,在源上执行的提交在返回到执行事务的会话之前会被阻塞,直到至少一个副本确认已接收并记录了事务的事件

  • MySQL 5.7 还支持延迟复制,使副本故意滞后源至少指定的时间量。

有两种核心的复制格式,分别是基于语句的复制(SBR),它复制整个SQL语句,和基于行的复制(RBR),它仅复制已更改的行。还可以使用第三种类型,即混合复制(MBR)

注意

由于 MySQL 实现的是异步的复制,所以主从库之间存在一定的差距,在从库上进行的查询操作需要考虑到这些数据的差异,一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从库查询,实时性要求高的数据仍然需要从主数据库获得。

MySQL的复制基本上是向后兼容的,新版本的服务器可以作为老版本的服务器的副本,但反过来,将老版本的服务器作为新版本的服务器的副本通常是不可行的,因为它可能无法解析新版本的新特性或SQL语法,而且复制使用的文件格式也可能存在差异。

最后更新于