Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Realizar Manutenção em Membros do Conjunto de Réplica

Nesta página

  • Visão geral
  • Procedimento

Os conjuntos de réplicas permitem que um sistema do MongoDB permaneça disponível durante a maior parte de uma janela de manutenção.

Este documento descreve o procedimento básico para realizar a manutenção de cada um dos membros de um conjunto de réplicas. Além disso, essa sequência específica se esforça para minimizar o tempo em que o primário fica indisponível e controlar o impacto em todo o sistema.

Use essas etapas como base para operações comuns de conjunto de réplicas, especialmente para procedimentos como a atualização para a versão mais recente do MongoDB.

Para cada membro de um conjunto de réplicas, começando com um membro secundário, execute a seguinte sequência de eventos, terminando com o principal:

1

Em mongosh, desligue a instância mongod :

db.shutdownServer()
2

No prompt do shell do sistema operacional, reinicie omongod como uma instância autônoma.

Se você estiver usando um arquivo de configuração, faça as seguintes atualizações de configuração:

Por exemplo, se estiver realizando manutenção em um nó do conjunto de réplicas do servidor de shard/configuração para manutenção, o arquivo de configuração atualizado incluirá conteúdo como o exemplo a seguir:

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

Se estiver usando opções de linha de comando, faça as seguintes atualizações de configuração para reiniciar:

Por exemplo, para reiniciar um membro do conjunto de réplicas que não faz parte de um cluster fragmentado:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

Por exemplo, para reiniciar um membro do conjunto de réplicas do servidor de shard/config para manutenção:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

Aviso

Antes de vincular sua instância a um endereço IP acessível publicamente, você deve proteger seu cluster contra acessos não autorizados. Para obter uma lista completa das recomendações de segurança, consulte Lista de verificação de segurança. No mínimo, considere habilitar a autenticação e fortalecer a infraestrutura de rede.

Sempre inicie o mongod com o mesmo usuário, mesmo ao reiniciar um nó do conjunto de réplicas como uma instância standalone.

3

Enquanto o nó for standalone, utilize o mongosh para fazer a manutenção:

mongo --port 27218

Importante

Embora o nó seja standalone, nenhuma gravação é replicada para esse nó e as gravações para o nó não são replicadas para os outros nós do conjunto de réplicas.

Certifique-se de que todas as gravações nesse autônomo não entrem em conflito com as gravações de oplog que serão aplicadas ao membro quando ele ingressar novamente no conjunto de réplicas.

4

Depois de executar todas as tarefas de manutenção, use o seguinte procedimento para reiniciar o mongod como um nó do conjunto de réplicas em sua porta existente.

A partir do mongosh, desligue o servidor independente após completar a manutenção:

use admin
db.shutdownServer()

Reinicie a instância do mongod como um membro do conjunto de réplicas com sua configuração original; isto é, desfaça as alterações de configuração feitas ao iniciar como um independente.

Dica

Certifique-se de remover o parâmetro disableLogicalSessionCacheRefresh .

Para shard ou configurar membros do servidor, certifique-se de remover o parâmetro skipShardingConfigurationChecks.

Quando tiver iniciado, conecte mongosh à instância reiniciada.

O secundário leva tempo para alcançar o primário. A partir de mongosh, use o seguinte comando para verificar se o membro passou do estado RECOVERING para o estado SECONDARY .

rs.status()
5
  1. Para realizar a manutenção no primário depois de concluir as tarefas de manutenção em todos os secundários, conecte mongosh ao primário e use rs.stepDown() para diminuir o primário e permitir que um dos secundários seja eleito o novo primário. Especifique um período de espera de 300 segundos para evitar que o nó seja eleito primário novamente por cinco minutos:

    rs.stepDown(300)

    Após as etapas primárias, o conjunto de réplicas selecionará uma nova primária.

  2. Reinicie o mongod como uma instância independente, fazendo as seguintes atualizações de configuração.

Se você estiver usando um arquivo de configuração, faça as seguintes atualizações de configuração:

Por exemplo, se estiver realizando manutenção em um nó do conjunto de réplicas do servidor de shard/configuração para manutenção, o arquivo de configuração atualizado incluirá conteúdo como o exemplo a seguir:

net:
bindIp: localhost,<hostname(s)|ip address(es)>
port: 27218
# port: 27018
#replication:
# replSetName: shardA
#sharding:
# clusterRole: shardsvr
setParameter:
skipShardingConfigurationChecks: true
disableLogicalSessionCacheRefresh: true

Aviso

Antes de vincular sua instância a um endereço IP acessível publicamente, você deve proteger seu cluster contra acessos não autorizados. Para obter uma lista completa das recomendações de segurança, consulte Lista de verificação de segurança. No mínimo, considere habilitar a autenticação e fortalecer a infraestrutura de rede.

Se estiver usando opções de linha de comando, faça as seguintes atualizações de configuração:

Por exemplo, para reiniciar um membro do conjunto de réplicas que não faz parte de um cluster fragmentado:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter disableLogicalSessionCacheRefresh=true

Por exemplo, para reiniciar um membro do conjunto de réplicas do servidor de shard/config para manutenção:

mongod --port 27218 --dbpath /srv/mongodb --bind_ip localhost,<hostname(s)|ip address(es)> --setParameter skipShardingConfigurationChecks=true --setParameter disableLogicalSessionCacheRefresh=true

Aviso

Antes de vincular sua instância a um endereço IP acessível publicamente, você deve proteger seu cluster contra acessos não autorizados. Para obter uma lista completa das recomendações de segurança, consulte Lista de verificação de segurança. No mínimo, considere habilitar a autenticação e fortalecer a infraestrutura de rede.

  1. Execute a tarefa de manutenção no agora autônomo.

    Importante

    Embora o nó seja standalone, nenhuma gravação é replicada para esse nó e as gravações para o nó não são replicadas para os outros nós do conjunto de réplicas.

    Certifique-se de que todas as gravações nesse autônomo não entrem em conflito com as gravações de oplog que serão aplicadas ao membro quando ele ingressar novamente no conjunto de réplicas.

  2. Após executar todas as tarefas de manutenção, reinicie a instância do mongod como um membro do conjunto de réplicas com sua configuração original; isto é, desfaça as alterações de configuração feitas ao iniciar como um independente.

    Dica

    Certifique-se de remover o parâmetro disableLogicalSessionCacheRefresh .

    Para shard ou configurar membros do servidor, certifique-se de remover o parâmetro skipShardingConfigurationChecks.

Voltar

Alterar o tamanho do Oplog

Próximo

Forçar um membro a se tornar primary