Menu Docs

Perguntas frequentes

Esta página fornece respostas para algumas perguntas frequentes que encontramos. Se você tiver outras dúvidas, entre em contato com o Suporte do MongoDB.

Sim, você pode ajustar o nível de volume de trabalho do cluster durante uma migração seguindo as etapas em Reconfigurar mongosync durante a sincronização.

mongosync combina e reordena gravaçõesmongosync da origem para o destino durante a sincronização e modifica temporariamente as características da coleção. Como resultado, não pode garantir que o destino corresponda à origem, incluindo uma versão obsoleta da origem, a qualquer ponto em que a sincronização estiver em execução, mesmo que a sincronização esteja pausada. Para aceitar o tráfego com segurança para o cluster de destino, aguarde a migração para . Para saber mais,commit consulte Considerações sobre sincronização contínua.

Executar gravações em seu cluster de destino durante a sincronização resulta em comportamento indefinido. mongosync bloqueia gravações no cluster de destino por padrão. Para saber mais sobre o bloqueio de gravação, consulte Bloqueio de gravação e.start

Após a confirmação, só é seguro escrever no cluster de destino quando canWrite estiver true. Para verificar o valor de,canWrite execute o endpoint progress .

Para saber mais sobre leituras e escritas permitidas durante a sincronização, consulte Leituras e escritas.

Observação

As compilações de índice no cluster de destino são tratadas como gravações enquanto mongosync está sincronizando.

Os seguintes fatores podem contribuir para um aumento no tamanho do índice nos clusters de destino:

  • mongosync insere e remove dados durante uma migração, o que pode fazer com que os dados sejam armazenados de forma ineficiente no disco.

  • Por padrão, o mongosync cria índices antes de copiar dados. mongosync copia dados em _id ordem. Se um índice não estiver correlacionado com _id, o tamanho do índice poderá ficar grande. Para obter mais informações, consulte a página Perguntas frequentes: Índice do Manual do MongoDB.

Use os seguintes métodos para mitigar um aumento no tamanho do índice:

  • Reinicie a migração com o buildIndexes parâmetro configurado never para. Quando a migração terminar, crie índices manualmente no cluster de destino.

  • Após a migração, execute uma sincronização inicial contínua no cluster de destino.

  • Após a migração, execute o cluster de destino de forma compacta. Isso reconstrói índices e libera espaço em disco desnecessário para o sistema operacional, mas pode impacto o desempenho do cluster.

Sim, o mongosync pode ser executado em seu próprio hardware. mongosync não precisa ser executado nos servidores que hospedam suas instâncias do MongoDB. Quando o mongosync é executado em seu próprio hardware, ele pode usar um sistema operacional (OS) diferente do sistema operacional nos clusters de origem ou destino.

Para a maioria das migrações, o cluster de destino deve ter especificações de hardware mais altas do que o cluster de origem, incluindo as seguintes propriedades:

  • CPU

  • Memória

  • Disk I/O

Estas especificações de hardware garantem que o cluster de destino possa lidar com mongosync gravações e que a sincronização possa acompanhar o volume de trabalho do cluster de origem.

O cluster de destino deve ter armazenamento em disco suficiente para acomodar o tamanho lógico dos dados que estão sendo migrados e as entradas de oplog de destino da sincronização inicial. Por exemplo, para migrar 10 GB de dados, o cluster de destino deve ter pelo menos 10 GB disponíveis para os dados e outro 10 GB para as entradas de oplog de inserção da sincronização inicial.

Importante

Para usar a verificação incorporada, você deve ter um oplog maior no destino. Se você habilitar o verificador incorporado e reduzir o tamanho do oplog de destino, o verificador incorporado pode não conseguir acompanhar, causando erro em mongosync.

Se precisar reduzir a sobrecarga das entradas do oplog de destino e o verificador incorporado estiver desativado, você poderá:

  • Use a configuração para reduzir o tamanho do oplog do cluster de oplogSizeMB destino.

  • Use a configuração para reduzir ou remover o período mínimo de retenção de oplog do cluster de oplogMinRetentionHours destino.

mongosync aplica operações em no oplog cluster de origem aos dados no cluster de destino após a fase de cópia da coleção. Quando as operações que mongosync não aplicaram roll off do oplog no cluster de origem, a sincronização falha e mongosync sai.

Observação

mongosync não replica operações applyOps feitas no cluster de origem durante a sincronização com o cluster de destino.

Se você antecipar a sincronização de um grande conjunto de dados ou se planeja pausar a sincronização por um longo período de tempo, poderá exceder a oplog window. Use a configuração oplogSizeMB para aumentar o tamanho do oplog no cluster de origem.

mongosync requer readConcern: "maioria" e writeConcern: "maioria".

Se o readConcern não for majority, mongosync retorna um erro:

Invalid URI option, read concern must be majority

Se o writeConcern não for majority, mongosync retorna um erro:

Invalid URI option, write concern must be majority

mongosync aceita todas as outras opções de connection string.

mongosync usa uma connection string padrão do MongoDB para se conectar aos clusters de origem e destino.

LDAP e X509 são suportados. Para obter as opções de autenticação disponíveis, consulte Autenticação em implementações autogerenciadas.

mongosync não reinicia automaticamente em caso de erro. No entanto, você pode escrever um script ou usar os gerenciadores de processos do seu sistema operacional, systemd por exemplo, para reiniciar o processo mongosync .

O binário mongosync não tem estado. Os metadados para reiniciar são armazenados no cluster de destino.

Uma operação mongosync pode ser retomada se mongosync ficar indisponível durante a sincronização. Quando o mongosync estiver disponível novamente, reinicie o processo do mongosync com os mesmos parâmetros. mongosync retoma a operação de onde parou quando mongosync ficou indisponível.

Observação

A partir de mongosync 1.7.3, mongosync pode levar pelo menos dois minutos para responder quando você retoma ou reinicia uma operação de sincronização. Durante esse tempo, qualquer chamada para o endpoint progress pode falhar. Se uma chamada progress falhar, é seguro tentar novamente.

Sim, o conjunto de réplicas pode ter árbitros. O conjunto de réplicas de origem deve ter mais de 2 nós não árbitros e você deve sincronizar a partir de um nó não árbitro. Use a connection string do cluster de origem para especificar uma preferência de leitura para um nó portador de dados não árbitro.

Os avisos de operação lenta podem ocorrer durante a sincronização inicial ou a aplicação de um evento de alteração quando há uma operação de leitura lenta no cluster de origem ou uma operação de gravação lenta no cluster de destino. O aviso pode indicar congestionamento de rede ou sobrecarga de recursos no cluster de origem ou destino.

Embora esses avisos não indiquem falhas em si mesmos, operações lentas podem causar erros de tempo limite de operação em mongosync e falhas de migração.

Se você ver avisos de operação lenta, verifique o uso da CPU, da memória e da rede nos clusters de origem e destino. Se os clusters estiverem subprovisionados para suas necessidades, considere atualizar o hardware do cluster.

Não, os logs que contêm a palavra "erro" ou "falha" mostram erros não fatais e não sinalizam que você precisa parar mongosync mais cedo. Esses logs não indicam que mongosync esteja falhando ou corrompendo os dados. Se ocorrer um erro fatal, mongosync interromperá a sincronização e gravará uma entrada de log fatal.

Erros de chave duplicados são uma parte normal do processo de sincronização. Esses erros podem ocorrer se:

  • Você insere um documento no cluster de origem após o início do mongosync . mongosync pode copiar diretamente o documento e aplicar redundantemente o evento de alteração de inserção para o documento posteriormente.

  • Você para e retoma mongosync. Isso pode levar a inserções duplicadas quando mongosync for reiniciado.

  • mongosync encontra um erro transitório e tenta novamente uma inserção que já pode ter sido bem-sucedida.

Um erro fatal indica um problema que deve ser corrigido e exige que a migração seja reiniciada. Depois de resolver o erro, exclua todos os dados migrados no cluster de destino, incluindo o banco de banco de dados mongosync_reserved_for_internal_use . Em seguida, reinicie o mongosync e inicie uma nova migração.

Cluster-to-Cluster Sync oferece suporte à sincronização de índices TTL do cluster de origem para o cluster de destino.

Não, você não pode configurar o mongosync para personalizar distribuições de chunk em um cluster fragmentado de destino. mongosync faz uma amostra de cada collection durante a inicialização para determinar como distribuir documentos de forma eficiente entre os shards do cluster de destino após a migração.