Membros do conjunto de réplicas
Nesta página
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.
Principal
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.
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.
Secundário
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.
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:
Impedir que se torne um primário numa eleição, permitindo que resida em um centro de dados secundário ou sirva como um standby frio. Consulte Membros do Conjunto de Réplicas de Prioridade 0.
Impedir que aplicações leiam a partir dele, permitindo que ele execute aplicações que exigem separação do tráfego normal. Consulte Membros ocultos do conjunto de réplicas.
Mantenha um snapshot "histórico" de execução para uso na recuperação de certos erros, como bancos de dados excluídos acidentalmente. Consulte Membros do conjunto de réplicas atrasadas.
[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:
|
Árbitro
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. |