reverse
Nesta página
Descrição
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 ecluster1
é 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.
Requisitos
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
paratrue
enableUserWriteBlocking
paratrue
.
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 estadoCOMMITTED
.O oplog do cluster de destino não deve ser acumulado entre
mongosync
, alcançarcanWrite=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.
Validar índices únicos
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:
Sincronize todos os secundários, um por um.
Para obter um tutorial sobre a ressincronização de nós, consulte Sincronizar novamente um membro de um conjunto de réplicas.
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.
Solicitar
POST /api/v1/reverse
Parâmetros do corpo da solicitação
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 { }
.
Resposta
Campo | Tipo | Descrição |
---|---|---|
| booleano | Quando a solicitação é bem-sucedida, esse valor é |
| string | Se ocorreu um erro, indica o nome do erro. Este campo é omitido da resposta quando |
| string | Descrição detalhada do erro que ocorreu. Este campo é omitido da resposta quando |
Exemplo
O exemplo a seguir reverte a direção de uma operação de sincronização confirmada.
Solicitar
curl localhost:27182/api/v1/reverse -XPOST --data '{ }'
Resposta
{"success":true}
Comportamento
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
.
Verificador incorporado
O verificador embarcado é habilitado por padrão para migrações de conjunto de réplicas.
Proteção de endpoint
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.
Limitações
O endpoint reverse
não suporta:
migrações de 6.0 clusters de origem pré-.