Sobre mongosync
Nesta página
mongosync
não são suportados nem testados para uso com sistemas não genuínas do MongoDB . Embora as ferramentas possam funcionar nessas implementações, a compatibilidade não é garantida.O bináriomongosync é o processo primário usado no Cluster-to-Cluster Sync. mongosync
migra dados de um cluster de origem para um cluster de destino e mantém os clusters em sincronização contínua até que você finalize a sincronização. Além da sincronização de dados contínua, o mongosync
também pode executar uma migração de dados única entre clusters.
mongosync
mantém o controle de suas ações atuais por meio de estados. mongosync
insere estados diferentes dependendo das solicitações que recebe. O estado atual do mongosync
determina quais operações de API você pode executar.
Observação
A maioria das transições de estado ocorre como resultado de uma chamada de API. As exceções são:
A transição de
COMMITTING
paraCOMMITTED
. Para obter mais informações, consulte Finalizando a sincronização.A transição de
REVERSING
paraRUNNING
. Para obter mais informações, consulte Reverter a sincronização.
Para visualizar o estado atual do mongosync
, use o endpoint /progress .
O diagrama a seguir ilustra a relacionamento entre mongosync
estados e operações de API:
A página Perguntas Frequentes (FAQ) aborda as perguntas que os usuários fizeram sobre mongosync
.
Detalhes
Conecte clusters de origem e destino
Você deve criar uma conexão inicial com os clusters de origem e destino antes que mongosync
possa começar a sincronizar dados. Para obter mais informações, consulte Conectando mongosync
.
Quando mongosync
se conecta aos clusters de origem e destino, o processo de sincronização entra no estado IDLE .
Iniciar sincronização
Para iniciar o processo de sincronização, chame o endpoint inicial .
O endpoint start
começa o estado RUNNING
, que é quando mongosync
sincroniza dados do cluster de cluster de origem com o cluster de destino. Se você fizer gravações subsequentes no cluster de origem, o mongosync
aplicará as operações ao cluster de destino.
Para cada coleção de origem que sincroniza, o mongosync
cria uma coleção correspondente no destino.
mongosync
altera temporariamente algumas das características da coleção replicada no cluster de destino. Ele altera essas características do cluster de destino de volta para as características do cluster de origem durante o estado COMMIT
. Para obter mais informações, consulte Alterações de características de coleção.
O estado RUNNING
inclui duas fases:
cópia da coleção
Durante a fase de cópia de coleção, o mongosync
executa a transferência de dados inicial do agrupamento de cluster de origem para o agrupamento de destino. mongosync
executa essa transferência de dados dividindo as collections de origem em partições e copiando as partições para as collections de destino correspondentes.
Alterar aplicativo de evento
A fase do aplicação de evento de alteração (CEA) começa após o término da fase de cópia da coleção.
Durante a fase de ECA, o mongosync
atualiza continuamente o cluster de destino quando você faz alterações no cluster de origem.
Para fazer atualizações contínuas no cluster de destino, mongosync
abre um change stream no cluster de origem e aplica os eventos de alteração que recebe ao cluster de destino.
Quando a fase de ECA começa, mongosync
aplica os eventos de alteração recebidos durante a fase de cópia de collection antes de processar os eventos recebidos durante a fase de ECA.
Pausar sincronização
Para pausar o processo de sincronização e inserir o estado PAUSED , chame o endpoint de pausa .
Para retomar um processo de sincronização pausado e retornar mongosync
ao estado RUNNING
, chame o endpoint de retomada .
Finalizar sincronização
Para finalizar a sincronização entre os clusters de origem e de destino, chame o endpoint de confirmação .
Observação
Você deve bloquear gravações no cluster de origem antes de iniciar o processo de confirmação.
Se você definiu enableUserWriteBlocking
anteriormente "sourceAndDestination"
como ao usar o endpoint de início, mongosync
bloqueará automaticamente as gravações no cluster de origem quando você usar o commit
endpoint.
Se você não definiu enableUserWriteBlocking
"sourceAndDestination"
como, execute no cluster de origem para bloquear setUserWriteBlockMode
gravações.
O endpoint commit
inicia o estado Confirmando , que é quando mongosync
interrompe a sincronização contínua entre os clusters de origem e de destino.
Quando o estado COMMITTING
começa, mongosync
recupera o carimbo de data/hora do commit, que é a hora da operação mais recente no cluster de origem.
Se não houver erros, mongosync
enviará uma mensagem de sucesso e sairá do CAE processando eventos até o carimbo de data/hora de confirmação. mongosync
também restaura características da coleção que mongosync
altera temporariamente durante a sincronização.
Quando o processo acima é concluído, mongosync
entra no estado COMPOsta . O estado COMMITTED
indica que o processo de cutover foi concluído.
Sincronização reversa
Para reverter a direção de uma operação de sincronização confirmada, chame o ponto de extremidade reverso .
O ponto de extremidade reverse
inicia o estado REVERSING . mongosync
troca os clusters de origem e destino e retoma a aplicação de eventos de alteração.
Se a sincronização reversa for bem-sucedida, mongosync
entrará no estado RUNNING
. A sincronização continua na direção inversa do tarefa de sincronização original.
Saiba mais
Para saber mais sobre mongosync
, consulte: