Estou tentando instalar dois nós do mongo, cada um localizado em um local diferente com baixa latência. A arquitetura deve ser:
Um nó em DC e o outro nó em DR. Supõe-se que apenas um nó seja o primário por vez (nó no DC); se o DC estiver inativo, o nó no DR pode ser o mestre (pode propô-lo manualmente como primário).
Quando o nó no DR é alterado manualmente para ser primário, posso ter tempo para trazer novamente o nó no DC, esperar que os dados sejam sincronizados com o DC e, em seguida, diminuir o nó no DR, alterar o nó no DC para ser primário novamente.
Não tenho certeza se o conjunto de réplicas pode ser aplicado a isso. Por favor me ajude com uma solução para isso.
Obrigado.
O MongoDB pode eleger um PRIMÁRIO somente se a maioria for alcançável. Um nó em dois não é a maioria. Assim, quando um banco de dados fica offline, o outro não pode se tornar o PRIMÁRIO.
O que você poderia fazer nesse caso é conectar-se ao MonogDB que está disponível e modificar o outro membro para
{priority: 0, votes: 0}
. Então a maioria dos “membros que podem ser eleitos como PRIMÁRIOS” é 1 e será eleito. É claro que isso não seria um failover automático.Outra opção é implantar um ARBITER. Um MongoDB ARBITER é um processo muito leve, quase não consome poder de processamento e não armazena nenhum dado.
Consulte também https://stackoverflow.com/questions/69658590/mongoclient-to-connect-to-multiple-hosts-to-handle-failover/69666511#69666511