Membros ocultos do conjunto de réplicas
Nesta página
Um membro oculto mantém uma cópia do conjunto de dadosdo primary do , mas é invisível para os aplicativos cliente . Os membros ocultos são bons para volumes de trabalho com padrões de uso diferentes dos outros membros do conjunto de réplicas. Os membros ocultos devem ser sempre membros de prioridade 0 e, portanto , não podem se tornar primários. O método db.hello()
não exibe membros ocultos. No entanto, os membros ocultos podem votar nas eleições.
Comportamento
Ler operações
Os clientes não distribuirão leituras com o read preference apropriado para membros ocultos. Como resultado, esses membros não recebem nenhum tráfego além da replicação básica. Use membros ocultos para tarefas dedicadas, como relatórios e backups.
Importante
Se o seu conjunto de réplicas tiver membros atrasados, garanta que os membros atrasados estejam ocultos e que não tenham direito ao voto.
A ocultação dos membros do conjunto de réplicas atrasadas impede que os aplicativos vejam e consultem os dados atrasados sem uma conexão direta com esse membro. Tornar os membros do conjunto de réplicas atrasadas sem direito a voto significa que eles não contarão para o reconhecimento das operações de gravação com a write concern "majority"
.
Se você não ocultar membros atrasados e um ou mais nós ficarem indisponíveis, o conjunto de réplicas deverá aguardar o membro atrasado e o ponto de confirmação atrasar. Um ponto de confirmação atrasado pode levar a problemas de desempenho.
Por exemplo, considere uma configuração de conjunto de réplicas Primary-Secondary-Delayed onde o secundário atrasado está votando com um atraso de 10 minutos.
Com uma secundária não atrasada indisponível, a configuração degradada de Primary-Delayed deve aguardar pelo menos 10 minutos para reconhecer uma operação de gravação com "majority"
. A maioria dos pontos de confirmação levará mais tempo para avançar, levando a problemas de desempenho semelhantes à pressão de cache com um conjunto de réplicas Primário com um Secundário e Arbitro (PSA).
Para obter mais informações sobre o ponto de confirmação da maioria, consulte Consistência causal e preocupações de leitura e gravação. Para detalhes adicionais sobre como resolver problemas de desempenho, consulte o tutorial de manutenção de conjunto de réplicas.
Em um cluster fragmentado, o mongos
não interage com membros ocultos.
Votação
Membros ocultos podem votar em eleições de conjuntos de réplicas. Se você interromper um membro oculto com direito a voto, certifique-se de que o conjunto tenha uma maioria ativa ou o primary será removido.
Para fins de backups,
db.fsyncLock()
garante que os arquivos de dados estejam seguros para cópia usando utilidades de backup de baixo nível, comocp
,scp
outar
. Ummongod
iniciado usando os arquivos copiados contém dados gravados pelo usuário que não podem ser distinguidos dos dados gravados pelo usuário nomongod
bloqueado.Os arquivos de dados de um
mongod
bloqueado podem mudar devido a operações como sincronizações do registro no diário ou snapshots do WiredTiger. Embora isso não tenha efeito nos dados lógicos (por exemplo dados acessados pelos clientes), alguns utilidades de backup podem detectar essas alterações e emitir avisos ou não funcionar com os erros. Para obter mais informações sobre MongoDB- utilidades e procedimentos de backup recomendados, consulte Métodos de backup para um sistema autogerenciado.
Escreva preocupação
Os membros ocultos do conjunto de réplicas podem reconhecer as operações de gravação emitidas com w: <number>
. Para operações de escrita emitidas com w : "majority"
, no entanto, os membros ocultos também devem ser membros votantes (ou seja, members[n].votes
maior que 0
) para reconhecer a operação de gravação do "majority"
. Membros do conjunto de réplicas sem direito ao voto (i.e. members[n].votes
é 0
) não pode contribuir para reconhecer operações de gravação com o write concern majority
.
Leitura adicional
Para obter mais informações sobre backup de bancos de dados MongoDB , veja Métodos de backup para um sistema autogerenciado. Para configurar um membro oculto, veja Como configurar um membro oculto de um conjunto de réplicas autogerenciadas.