Configurar o alvo de sincronização de um secundário autogerenciado
Nesta página
Visão geral
Os secundários captam dados do membro primário para manter uma cópia atualizada dos dados dos conjuntos. No entanto, por padrão, os secundários podem alterar automaticamente seus destinos de sincronização para membros secundários com base em alterações no tempo de ping entre os membros e no estado da replicação de outros membros. Consulte Sincronização de dados do conjunto de réplicas e Replicações encadeadas autogerenciadas para obter mais informações.
Para alguns sistemas, a implementação de uma topologia de sincronização de replicação personalizada pode ser mais eficaz do que a lógica de seleção de destino de sincronização padrão. O MongoDB fornece a capacidade de especificar um host para usar como destino de sincronização.
Para substituir temporariamente a lógica de seleção de destino de sincronização padrão, você pode configurar manualmente o destino de sincronização de um membro secundário para extrair temporariamente entradas do oplog. O seguinte fornece acesso a esta funcionalidade:
replSetSyncFrom
comando, ours.syncFrom()
ajudante emmongosh
Considerações
Lógica de sincronização
Se uma operação de sincronização inicial estiver em andamento ao executar o replSetSyncFrom
/rs.syncFrom()
, o replSetSyncFrom
/rs.syncFrom()
interromperá a sincronização inicial em andamento e reiniciará o processo de sincronização com o novo destino.
Modifique apenas a lógica de sincronização padrão conforme necessário e sempre tenha cuidado.
Alvo
O membro de quem sincronizar deve ser uma fonte válida para dados no conjunto. Para sincronizar de um membro, o membro deve:
Tenha dados. Não pode ser um árbitro, no modo de inicialização ou recuperação, e deve ser capaz de responder a queries de dados.
Seja acessível.
Seja um membro do mesmo conjunto na configuração do conjunto de réplicas.
Construa índices com a configuração
members[n].buildIndexes
.Outro nó do conjunto, para evitar a sincronização dele mesmo.
Se você tentar replicar de um membro que está mais de 10 segundos atrás do membro atual, mongod
registrará um aviso, mas ainda replicará do membro atrasado. Consulte também Controle de fluxo e atraso de replicação.
Persistência
replSetSyncFrom
/rs.syncFrom()
fornece uma substituição temporária do comportamento padrão. mongod
será revertido para o comportamento de sincronização padrão nas seguintes situações:
Procedimento
Para usar o comando replSetSyncFrom
no mongosh
:
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } );
Para usar o auxiliar rs.syncFrom()
no mongosh
:
rs.syncFrom("hostname<:port>");