Menu Docs
Página inicial do Docs
/
Sincronização de Cluster-to-Cluster do MongoDB
/ /

reverse

Nesta página

  • Descrição
  • Requisitos
  • Validar índices únicos
  • Solicitar
  • Parâmetros do corpo da solicitação
  • Resposta
  • Exemplo
  • Solicitar
  • Resposta
  • Comportamento
  • Verificador incorporado
  • Proteção de endpoint
  • Limitações

Inverte a direção de uma operação de sincronização confirmada.

Por exemplo:

  • Você tem uma operação de sincronização COMMITTED .

  • cluster0 é a origem e cluster1 é o destino.

  • Após a operação de sincronização ser COMMITTED, novas gravações ocorrerão somente no cluster de destino. O cluster de origem não aceitará novas gravações.

Nesse cenário, você pode usar o endpoint reverse para sincronizar gravações de cluster1 para cluster0, incluindo quaisquer gravações que tenham ocorrido em cluster1 depois que mongosync atingiu canWrite=true. Para verificar o status canWrite durante a sincronização, use o endpoint /progress .

Para obter mais informações e um tutorial sobre como usar o reverse endpoint, consulte Direção de sincronização inversa.

Para usar o ponto de extremidade reverse :

  • mongosync deve ser configurado quando a sincronização inicial começar. A chamada para o ponto de conexão da API /start deve ser definida:

    • reversible para true

    • enableUserWriteBlocking para true.

Observação

Obloqueio de gravação é um pré-requisito para executar o .reverse

Você não pode atualizar essas opções após o início da sincronização.

  • mongosync deve estar no estado COMMITTED .

  • O oplog do cluster de destino não deve ser acumulado entre mongosync , alcançar canWrite=true e receber a solicitação /reverse .

  • Índices únicos exigem formatação adequada. As coleções com índices criados inicialmente no MongoDB 4.2 podem não ter a formatação adequada.

    Para validar se os índices de coleção usam a formatação adequada, consulte Validar índices únicos.

  • Os clusters de origem e destino devem ter o mesmo número de shards. Não é possível fazer a sincronização reversa quando os clusters têm topologias ou versões principais diferentes.

  • O usuário especificado na string de conexão mongosync deve ter as permissões necessárias nos clusters de origem e destino. As permissões variam dependendo do seu ambiente e se você deseja executar um bloqueio de gravação ou sincronização reversa.

Observação

Ao configurar várias instâncias mongosync para sincronizar entre clusters fragmentados, você deve enviar comandos de ponto de conexão da API idênticos para cada instância mongosync .

Para obter mais informações, consulte Reverter vários Mongosyncs.

Para reverter a direção, mongosync exige que todos os índices únicos utilizem a formatação correta. Os clusters que começaram com MongoDB 4.2 ou mais antigo e foram atualizados desde então podem incluir índices únicos que não estão formatados corretamente.

Para corrigir os índices, você pode sincronizar novamente todos os nós no cluster de origem original. Para sincronizar todos os nós novamente:

1

Para obter um tutorial sobre a ressincronização de nós, consulte Sincronizar novamente um membro de um conjunto de réplicas.

2
3

Como alternativa, para evitar a ressincronização, você pode usar o método db.collection.validate() com full = false em cada collection com índices exclusivos em todos os nós para determinar se cada collection contém índices exclusivos formatados incorretamente. Se db.collection.validate() não retornar um aviso sobre um índice único, você poderá ignorar a ressincronização.

POST /api/v1/reverse

Este endpoint não usa parâmetros do corpo da solicitação HTTP. No entanto, você deve especificar a opção --data com um objeto vazio { }.

Campo
Tipo
Descrição

success

booleano

Quando a solicitação é bem-sucedida, esse valor é true.

error

string

Se ocorreu um erro, indica o nome do erro. Este campo é omitido da resposta quando success é true.

errorDescription

string

Descrição detalhada do erro que ocorreu. Este campo é omitido da resposta quando success é true.

O exemplo a seguir reverte a direção de uma operação de sincronização confirmada.

curl localhost:27182/api/v1/reverse -XPOST --data '{ }'
{"success":true}

O endpoint 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 reverse for bem-sucedida, mongosync entrará no estado RUNNING . A sincronização continua na direção inversa do tarefa de sincronização original. Você não precisa reiniciar todo o processo de sincronização para copiar os dados originais.

Para visualizar a direção de mapeamento para a sincronização dos clusters de origem e destino, use o endpoint de progresso e verifique o objeto directionMapping .

O verificador embarcado é habilitado por padrão para migrações de conjunto de réplicas.

mongosync não protege o endpoint reverse . No entanto, por padrão, a API é vinculada apenas ao host local e não aceita chamadas de outras fontes. Além disso, a chamada reverse não expõe credenciais de conexão ou dados de usuário.

O endpoint reverse não suporta:

Voltar

commit