Docs 菜单
Docs 主页
/
数据库手册
/ /

跨两个或多个数据中心分布的副本集

虽然 副本集 提供了针对单实例故障的基本保护,但其节点全部位于单个数据中心的副本集容易受到数据中心故障的影响。断电、网络服务中断和自然灾害等问题均有可能影响其成员位于单个设施中的副本集。

将副本集成员分布在地理位置不同的数据中心可提升冗余性,并可在某一数据中心变为不可用时提供容错能力。

有些云提供商使用区域可用性区域。区域是独立的地理区域。可用区与数据中心相同,是区域内独立的物理位置。如果节点位于不同的可用区,则副本集具有高可用性,因为所有可用区不太可能同时发生故障。

为了在数据中心发生故障时保护您的数据,请在备用数据中心保留至少一个节点。如果可能,使用奇数个数据中心,并选择一种节点分布方式,以最大限度地保证即使丢失一个数据中心,剩余的副本集节点也能形成多数,或至少提供一份您数据的副本。

例如,对于一个三成员副本集,潜在的成员分布模式包括:

  • 两个数据中心:两名成员位于数据中心 1,一名成员位于数据中心 2。

    • 如果数据中心 1 发生故障,副本集将变为只读。

    • 如果数据中心 2 出现故障,副本集仍可进行写入,因为数据中心 1 中的成员可进行选举。

  • 三个数据中心:一名成员位于数据中心 1,一名成员位于数据中心 2,一名成员位于数据中心 3。

    • 如果任一数据中心出现故障,副本集仍可进行写入,因为其余成员可进行选举。

注意

对于生产部署,我们建议至少在三个数据中心部署配置配置服务器和分片副本集。此配置可在单个数据中心出现故障时提供高可用性。

对于一个 5 成员副本集,潜在的成员分布模式包括:

  • 两个数据中心:三名成员位于数据中心 1,两名成员位于数据中心 2。

    • 如果数据中心 1 发生故障,副本集将变为只读。

    • 如果数据中心 2 出现故障,副本集仍可进行写入,因为数据中心 1 中的成员可创建 majority。

  • 三个数据中心:两名成员位于数据中心 1,两名成员位于数据中心 2,一名成员位于数据中心 3。

    • 如果任一数据中心出现故障,副本集仍可进行写入,因为其余成员可进行选举。

注意

对于生产部署,我们建议至少在三个数据中心部署配置配置服务器和分片副本集。此配置可在单个数据中心出现故障时提供高可用性。

例如,以下 5 成员副本集将其成员分布在三个数据中心内。

分布在三个数据中心的 5 成员副本集的示意图。

该副本集的某些成员(例如存在网络限制或资源有限的成员)不应在故障转移时成为主节点。将不应成为主节点的成员配置为具有优先级 0

某些情况下,您可能希望一个数据中心内的成员先于其他数据中心内的成员被选为主节点。您可以修改成员的 priority,以使一个数据中心内成员的 priority 高于其他数据中心内的成员。

在以下示例中,数据中心 1 内的副本集成员的优先级高于数据中心 2 和 3 内的成员;数据中心 2 内的成员的优先级高于数据中心 3 内的成员:

分布在三个数据中心的 5 成员副本集的示意图。副本集包括优先级为 0.5 和 0 的成员。

验证您的网络配置是否允许每个成员连接到其他每个成员。

后退

三节点

在此页面上