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

Membros do conjunto de réplicas

Nesta página

  • Principal
  • Secundário
  • Árbitro

Um conjunto de réplicas no MongoDB é um grupo de processos mongod que fornecem redundância e alta disponibilidade. Os membros de um conjunto de réplicas são:

Principal
O principal recebe todas as operações de gravação.
Secundário
Os secundários replicam operações do primário para manter um conjunto de dados idêntico. Os secundários podem ter configurações adicionais para perfis de uso especiais. Por exemplo, os secundários podem ser não votantes ou prioridade 0.

A configuração mínima recomendada para um conjunto de réplicas é um conjunto de réplicas de três membros com três membros portadores de dados: um membro primário e dois secundários. Em algumas circunstâncias (como você ter um primário e um secundário, mas as restrições de custo proíbem a adição de outro secundário), você pode optar por incluir um árbitro. Um árbitro participa de eleições, mas não mantém os dados (ou seja, não oferece redundância de dados).

Um conjunto de réplicas pode ter até 50 nós, mas apenas 7 nós votantes.

Dica

Veja também:

O primário é o único nó no conjunto de réplicas que recebe operações de gravação. O MongoDB aplica operações de gravação no primário e depois as registra no oplog dele. Os nós secundários replicam esse log e aplicam as operações nos seus conjuntos de dados.

No conjunto de réplicas de três membros abaixo, o primário aceita todas as operações de gravação. Em seguida, os secundários replicam o oplog para aplicar em seus conjuntos de dados.

Diagrama de roteamento padrão de leituras e gravações no principal.
clique para ampliar

Todos os membros do conjunto de réplicas podem aceitar operações de leitura. No entanto, como padrão, uma aplicação direciona suas operações de leitura para o membro primário. Consulte Preferência de leitura para mais informações sobre como alterar o comportamento de leitura padrão.

O conjunto de réplicas pode ter no máximo uma primária. [2] Se a primária atual ficar indisponível, uma eleição determinará a nova primária. Consulte Eleições do conjunto de réplicas para obter mais detalhes.

Um secundário mantém uma cópia do conjunto de dados do primário. Para replicar dados, um secundário aplica operações do oplog do primário ao seu próprio conjunto de dados em um processo assíncrono. [1] Um conjunto de réplicas pode ter um ou mais secundários.

O conjunto de réplicas de três membros abaixo tem dois membros secundários. Os secundários replicam o oplog do primário e aplicam as operações em seus conjuntos de dados.

Diagrama de um conjunto de réplicas de três membros com um principal e dois secundários.

Embora os clientes não possam gravar dados em secundários, eles podem ler dados de membros secundários. Consulte Preferências de leitura para mais informações sobre como os clientes podem direcionar operações de leitura para conjuntos de réplicas.

Um secundário pode se tornar o primário. Se o primário atual ficar indisponível, o conjunto de réplicas fará uma eleição para escolher qual dos secundários será o novo primário.

Veja Eleições de conjunto de réplicas para mais informações.

Você pode configurar um membro secundário para uma finalidade específica. Você pode configurar um secundário para:

[1] Os membros secundários de um conjunto de réplicas agora registram entradas de oplog que demoram mais do que o limite de operação lenta para serem aplicadas. Essas mensagens de atraso no oplog:
  • São registradas para os secundários no diagnostic log.
  • São registradas sob o componente REPL com o texto applied op: <oplog entry> took <num>ms.
  • Não dependem dos níveis de registro (seja no nível do sistema ou do componente)
  • Não dependem do nível de perfil.
  • São afetados por slowOpSampleRate.
O perfilador não captura entradas de oplog lentas.

Em determinadas circunstâncias (p. ex., quando existe um primário e um secundário, mas restrições orçamentárias impedem o acréscimo de outro secundário), você pode incluir um árbitro ao seu conjunto de réplicas. Um árbitro participa nas eleições do primário, mas não possui uma cópia do conjunto de dados e não pode se tornar o primário.

Um árbitro tem exatamente 1 voto eleitoral. Por padrão, um árbitro tem prioridade 0.

Importante

Não execute um árbitro em sistemas que também hospedem os membros principais ou secundários do conjunto de réplicas.

Aviso

Usar uma arquitetura de árbitro primário secundário (PSA) para fragmentos em um cluster fragmentado pode causar perda de disponibilidade se um secundário contendo dados não estiver disponível. Um cluster PSA difere de um conjunto de réplicas típico: em um cluster fragmentado, os fragmentos realizam operações w: majority de gravação em relação que não podem ser concluídas se os membros restantes do cluster necessários para confirmar uma operação tiverem um árbitro.

Para adicionar um árbitro, consulte Adicionar um árbitro a um conjunto de réplicas autogerenciadas.

Para considerações ao usar um árbitro, consulte Conjunto de Réplicas de Árbitro.

[2] Em alguns casos, dois nós em um conjunto de réplicas podem acreditar transitoriamente que são os primários, mas somente um deles poderá realizar gravações com restrição de gravação { w: "majority" }. O nó que consegue realizar gravações { w: "majority" } é o primário atual, e o outro nó é um antigo primário que ainda não reconheceu seu rebaixamento, normalmente devido a uma partição de rede. Quando isso ocorre, os clientes que se conectam ao antigo primário poderão ver dados obsoletos, apesar de terem solicitado uma preferência de leitura primary, e novas gravações no antigo primário acabarão sendo revertidas.

Voltar

Sincronização de dados