高性能MySQL(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

复制

MySQL被设计用于在任何给定时间只在一个节点上接受写操作。这在管理一致性方面具有优势,但在需要将数据写入多台服务器或多个地区时,会导致需要做出取舍。MySQL提供了一种原生方式来将一个节点执行的写操作分发到其他节点,这被称为复制。在MySQL中,源节点为每个副本节点提供一个线程,该线程作为复制客户端登录,当写入发生时会被唤醒,发送新数据。在图1-3中,我们展示了此设置的一个简单示例,通常将它称为一主多副的多个MySQL服务器拓扑树。

图1-3:MySQL服务器复制拓扑的简化视图

对于在生产环境中运行的任何数据,都应该使用复制并至少有三个以上的副本,理想情况下应该分布在不同的地区(在云托管环境中,称为region)用于灾难恢复计划。

多年来,MySQL中的复制变得十分复杂。全局事务标识符、多源复制、副本上的并行复制和半同步复制是一些主要的更新。我们将在第9章详细讨论复制。