Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  Group Replication  /  Group Replication Background

20.1 组复制背景

本节提供了 MySQL 组复制的背景信息。

创建容错系统的最常见方法是使组件冗余,即组件可以被删除,系统仍然可以正常运作。这会引发一系列挑战,使得系统的复杂性大大增加。特别是,复制数据库需要维护和管理多个服务器,而不是只有一个。此外,服务器之间的协作还需要解决经典的分布式系统问题,如网络分区或脑裂场景。

因此,挑战在于将数据库逻辑和数据复制逻辑与服务器协作逻辑融合在一起,以便服务器在每个状态转换时达成一致。换言之,服务器需要在每个数据库状态转换时达成一致,以便它们都像一个数据库一样运作。

MySQL 组复制提供了分布式状态机复制,具有服务器之间的强协调。服务器可以自动协调自己,当它们属于同一个组时。组可以在单主模式下运作,自动选举主服务器,或者在多主模式下运作,所有服务器都可以接受更新,尽管它们可能是并发的。

有一个内置的组成员服务,保持组视图的一致性和可用性,供所有服务器在任何时候使用。服务器可以离开和加入组,视图将相应更新。如果服务器意外离开组,故障检测机制将检测到并通知组视图的变化。

要提交事务,组中的大多数服务器必须同意事务的顺序。如果网络分区导致组成员无法达成一致,则系统不会继续进度,直到该问题解决。

所有这些都是由提供的组通信系统(GCS)协议驱动的。这些协议提供了故障检测机制、组成员服务和安全的有序消息传递。所有这些属性都是确保数据在服务器组中一致复制的关键。在这个技术的核心是 Paxos 算法的实现,它充当组通信引擎。