Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

reverse

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 do 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 "sourceAndDestination".

Observação

O bloqueio duplo de gravação é um pré-requisito para a execução reverse de.

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 .

Aviso

Os índices únicos no cluster de origem não devem usar o formato legado.

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

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

  • Os clusters de origem e destino devem executar a mesma versão principal do MongoDB .

  • 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 modificar as configurações de bloqueio de escrita ou usar a 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 no cluster de origem _id (exceto) não tenham chaves de índice único legado .

Você pode garantir que_id os índices únicos não usem a formatação correta no cluster de origem com o $collStats estágio de agregação. Para executar esse pipeline de agregação em sua coleção, copie e cole o código de exemplo , substituindo <collection> pelo nome da coleção e <field_name> pelo nome do campo indexado. Você deve executar isso em todos os nós, para todas as collections que possuem índices únicos. Observe que somente os_id índices únicos que não são precisam ter formatVersion 13 14ou.

db.<collection>.aggregate( [
{ $collStats: { storageStats: { } } },
{ $project: { "storageStats.indexDetails.<field_name>.metadata.formatVersion": 1 } }
] )
[
{
storageStats: {
indexDetails: { <field_name>: { metadata: { formatVersion: 14 } } }
}
}
]

É garantido que índices únicos com formatVersion 13 ou 14 não tenham chaves legado .

Se você tiver índices únicos de um formatVersion diferente, você também poderá usar o método db.collection.validate() com full = false para confirmar se há chaves de índice legado . Você deve executar isso em todos os nós de todas as collections com índices únicos. validate() retorna um aviso se forem detectadas chaves de índice de formato legado .

Para atualizar a versão de formato dos índices para compatibilidade com mongosync, você deve ressincronizar 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
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: