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 três membros com suporte de dados: um primário e dois membros 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, o árbitro não tem acesso aos dados). 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
The primary is the only member in the replica set that receives write operations. MongoDB applies write operations on the primary and then records the operations on the primary's oplog. Secondary members replicate this log and apply the operations to their data sets.
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.
The replica set can have at most one primary. [1] If the current primary becomes unavailable, an election determines the new primary. See Replica Set Elections for more details.
Secundário
A secondary maintains a copy of the primary's data set. To replicate data, a secondary applies operations from the primary's oplog to its own data set in an asynchronous process. [2] A replica set can have one or more secondaries.
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.
| [2] | 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:
O perfilador não captura entradas de oplog lentas. |
Á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 primário-secundário-árbitro (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 w: majority operações de preocupação de gravaçã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.
| [1] | 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 |