Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
MongoDB Mongosync
/ /

Verificar com o verificador incorporado

mongosync inclui um verificador incorporado para realizar uma série de verificações no cluster de destino para verificar a sincronização das coleções suportadas.

Importante

O verificador não verifica os seguintes namespaces:

  • Coleções limitadas

  • Coleções com índices TTL, incluindo índices TTL que são adicionados ou descartados durante a migração

  • Coleções que não usam o agrupamento padrão

  • Visualizações

O verificador não verifica as seguintes funcionalidades da collection:

  • Metadados da coleção

  • Indexes

Para verificar os dados e metadados acima, crie verificações adicionais por script para essas collections e recursos de collection. Para obter mais informações, consulte Verificar transferência de dados.

Novidades na versão 1.9.

O verificador incorporado não está disponível no mongosync 1.8 e anterior.

Para métodos de verificação alternativos, consulte Verificar transferência de dados.

O verificador incorporado tem as seguintes limitações:

  • O verificador não oferece suporte a clusters fragmentados. Se a migração incluir um cluster fragmentado, mongosync desativará o verificador.

  • mongosync armazena o estado do verificador na memória, o que pode resultar em uma sobrecarga significativa de memória. Para executar o verificador, mongosync requer aproximadamente 10 GB de memória, além de 500 MB adicionais para cada 1 milhões de documentos.

  • O verificador não pode ser retomado. Se um usuário interromper ou pausar a sincronização e, em seguida, iniciar mongosync novamente por qualquer motivo, o processo de verificação será reiniciado desde o início. Isso pode fazer com que a verificação fique significativamente atrás da migração.

  • O endpoint /reverse desabilita o verificador. Permanece desabilitado após chamadas adicionais para o ponto de extremidade /reverse.

  • Se você iniciar a sincronização com a verificação ativada e buildIndexes definido como never, a migração falhará se mongosync encontrar uma coleção TTL no cluster de origem. Isso pode acontecer depois de chamar o endpoint /start ou muito mais tarde, como quando um usuário cria um índice TTL no cluster de origem enquanto uma migração está em andamento.

    Para sincronizar coleções TTL sem construir índices no cluster de destino, você deve iniciar a sincronização com o verificador desabilitado.

  • Se você fizer a atualização ao vivo de qualquer versão anterior a 1.9.0, mongosync desabilita a verificação incorporada.

O verificador não verifica os seguintes namespaces:

  • Coleções limitadas

  • Coleções com índices TTL, incluindo índices TTL que são adicionados ou descartados durante a migração

  • Coleções que não usam o agrupamento padrão

  • Visualizações

O verificador não verifica as seguintes funcionalidades da collection:

  • Metadados da coleção

  • Indexes

Para verificar os dados e metadados acima, crie verificações adicionais por script para essas collections e recursos de collection. Para mais informações, consulte Verificar Transferência de Dados.

1

Inicialize o processo mongosync:

./bin/mongosync \
--logPath /var/log/mongosync \
--cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \
--cluster1 "mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020"
2

Para começar a sincronizar dados do cluster de origem para o de destino, use o endpoint /start.

curl localhost:27182/api/v1/start -XPOST \
--data ' {
"source": "cluster0",
"destination": "cluster1",
} '

Saída de exemplo:

{"success":true}

Observe que o verificador está habilitado por padrão para migrações de conjunto de réplicas.

3

Para examinar o status da sincronização, use o endpoint /progress:

curl localhost:27182/api/v1/progress -XGET

Saída de exemplo:

{
"progress":
{
"state":"RUNNING",
"canCommit":true,
"canWrite":false,
"info":"change event application",
"lagTimeSeconds":0,
"collectionCopy":
{
"estimatedTotalBytes":694,
"estimatedCopiedBytes":694
},
"directionMapping":
{
"Source":"cluster0: localhost:27017",
"Destination":"cluster1: localhost:27018"
},
"verification":
{
"source":
{
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
},
"destination": {
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
}
}
},
"success": true
}

Examine o campo de resposta do verification para obter informações sobre o status do verificador embarcado.

O verificador incorporado executa uma série de verificações no cluster de destino. Ele verifica todas as coleções suportadas para confirmar que mongosync teve sucesso na transferência de documentos do cluster de origem para o de destino.

Se o verificador encontrar erros, ele falhará na migração com um erro. Se o verificador não encontrar erros, o endpoint /progress retornará canWrite: true. Para saber mais sobre o canWrite campo, consulte canWrite e Committed.

Entre em contato com o suporte para investigar problemas de verificação.

A verificação requer 10 GB de memória e 500 MB adicionais para cada 1 milhão de documentos na migração.

Se a memória disponível for insuficiente, o endpoint /start retornará um erro. Se isso ocorrer, para usar o mongosync com o verificador, você deve primeiro aumentar a memória do servidor e retomar a migração.

Se aumentar a memória do servidor não for uma opção, reinicie mongosync o com o verificador desabilitado.

Voltar

Verificação da transferência de dados

Nesta página