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

Verificar com o verificador incorporado

Nesta página

  • Sobre esta tarefa
  • Passos
  • Comportamento
  • Saiba mais

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.

Observação

mongosync lê usando primary preferência de leitura , então preserva a ordem dos campo do documento a partir do nó primary do cluster de origem. O verificador incorporado também verifica documentos com base no nó primário do cluster de origem, mas em um momento diferente de quando mongosync os lê. Devido a isso, em casos raros, discrepâncias na ordem dos campo do documento entre os nós do cluster de origem podem fazer com que o verificador incorporado falhe na migração, mesmo que mongosync tenha copiado os documentos corretamente.

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:

  • 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.

  • 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.

Observação

A partir da 1.10 versão, o verificador verifica se há inconsistências de dados de um evento DDL que ocorreu na pré-6.0 cluster de origem durante a migração. Isso ocorre porque pré-6.0 as migrações não suportam eventos DDL.

Para saber mais, consulte Limitações de migração pré-.6.0

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