管理链式复制

从 2.0 版本开始,MongoDB 支持链式复制。当一个从节点从另一个从节点而不是从主节点复制时,就会发生链式复制。这可能是这种情况,例如,如果从节点根据 ping 时间选择其复制目标并且最近的节点是另一个从节点。

链式复制可以减少主节点的负载。但链式复制也可能导致复制滞后增加,具体取决于网络拓扑。

您可以使用副本集配置settings.chainingAllowed中的 设置在链式复制导致延迟的情况下禁用链式复制。

MongoDB 默认启用链式复制。此过程描述了如何禁用它以及如何重新启用它。

NOTE

如果链式复制被禁用,您仍然可以使用 replSetSyncFrom来指定一个从节点从另一个从节点复制。但是该配置只会持续到次要重新计算要从哪个节点同步。

禁用链式复制

要禁用链式复制,请将 Replica Set Configurationsettings.chainingAllowed中的 字段设置为。false

您可以使用以下命令序列设置 settings.chainingAllowedfalse

  1. 将配置设置复制到cfg对象中:

    cfg = rs.config()
    
  1. 注意当前配置设置是否包含 settings嵌入文档。如果他们这样做,请跳过此步骤。

WARNING

为避免数据丢失,如果配置设置包含settings嵌入文档,请跳过此步骤。

如果当前配置设置包含 settings嵌入文档,请通过发出以下命令创建嵌入文档:

   cfg.settings = { }
  1. 发出以下命令序列以设置 settings.chainingAllowedfalse

    cfg.settings.chainingAllowed = false
    rs.reconfig(cfg)
    

重新启用链式复制

要重新启用链式复制,请设置 settings.chainingAllowedtrue. 您可以使用以下命令序列:

cfg = rs.config()
cfg.settings.chainingAllowed = true
rs.reconfig(cfg)

使用不可用节点重新配置副本集更改副本集中的主机名

原文链接 - https://docs.mongodb.com/manual/tutorial/manage-chained-replication/

译者:陆文龙

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""