Replicação encadeada autogerenciada
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 sua origem de replicação com base no tempo de ping e se o nó mais próximo for outro secundário. A origem de replicação para a operação é o membro do qual os dados são lidos.
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 Configuração do conjunto de réplicas autogerenciadas para desabilitar a replicação encadeada para situações em que a replicação encadeada esteja causando atraso.
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.
Desabilitar replicação encadeada
Para desabilitar a replicação encadeada, configure o campo settings.chainingAllowed
em Configuração do conjunto de réplicas autogerenciadas para false
.
Você pode utilizar a seguinte sequência de comandos para configurar settings.chainingAllowed
para false
:
Copie as definições de configuração para o objeto
cfg
:cfg = rs.config() 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 = { } Emita a seguinte sequência de comandos para definir
settings.chainingAllowed
comofalse
:cfg.settings.chainingAllowed = false rs.reconfig(cfg)
Reativar replicação encadeada
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)