Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Gerenciar replicação encadeada

Nesta página

  • Desabilitar replicação encadeada
  • Reativar replicação encadeada

A partir da versão 2.0, o MongoDB oferece suporte à replicação encadeada. Uma replicação encadeada ocorre quando um nó secundário replica de outro nó secundário em vez do primário. Este pode ser o caso, por exemplo, se um secundário selecionar seu destino de replicação com base no tempo de ping e se o nó mais próximo for outro secundário.

A replicação encadeada pode reduzir a carga no primary. Mas a replicação encadeada também pode resultar em um atraso de replicação maior, dependendo da topologia da rede.

Você pode usar a configuração settings.chainingAllowed em Replica Set Configuration para desabilitar a replicação encadeada para situações em que a replicação encadeada esteja causando lag.

O MongoDB permite a replicação encadeada por padrão. Este procedimento descreve como desativá-lo e como reativá-lo.

Observação

Se a replicação em cadeia estiver desativada, você ainda poderá usar replSetSyncFrom para especificar que um secundário se replique de outro secundário. Mas essa configuração durará somente até que o secundário recalcule de qual membro sincronizar.

Para desabilitar a replicação encadeada, configure o campo settings.chainingAllowed em Configuração do conjunto de réplicas para false.

Você pode utilizar a seguinte sequência de comandos para configurar settings.chainingAllowed para false:

  1. Copie as definições de configuração para o objeto cfg:

    cfg = rs.config()
  2. Observe se as definições de configuração atuais contêm o documento incorporado do settings. Se sim, pule esta etapa.

    Aviso

    Para evitar a perda de dados, pule esta etapa se a configuração contiver o documento incorporado de settings.

    Se as configurações atuais não contiverem o documento incorporado de settings, crie o documento incorporado emitindo o seguinte comando:

    cfg.settings = { }
  3. Emita a seguinte sequência de comandos para definir settings.chainingAllowed como false:

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

Para reativar a replicação encadeada, configure settings.chainingAllowed para true. Você pode usar a seguinte sequência de comandos:

cfg = rs.config()
cfg.settings.chainingAllowed = true
rs.reconfig(cfg)
← Reconfigure um conjunto de réplicas com membros indisponíveis