Menu Docs
Página inicial do Docs
/
MongoDB Mongosync
/

Limitações

Aviso

mongosync não verifica a conformidade com as limitações documentadas. Certifique-se de que seu aplicativo não seja afetado pelas limitações. A execução de mongosync na presença de uma dessas limitações pode levar a um comportamento indefinido no cluster de destino.

Você deve aderir a essas limitações durante toda a duração da migração, inclusive quando a migração for pausada ou interrompida, se ela for retomada.

Observação

Para obter informações sobre a compatibilidade do servidor MongoDB , consulte Compatibilidade da versão do MongoDB Server .

  • mongosync não oferece suporte a atualizações de versão do servidor no local que alteram a versão principal ou secundária durante uma migração. mongosync permite atualizações de versão de patch. Para saber mais, consulte as instruções de atualização do servidor.

  • O cluster de destino deve estar vazio.

  • mongosync não valida se os clusters ou o ambiente estão configurados corretamente.

  • Outros clientes não devem gravar no cluster de destino enquanto o mongosync estiver em execução.

  • Se deseja iniciar o processo de commit e não definiu enableUserWriteBlocking como true quando usou o endpoint,start você deverá impedir gravações no cluster de origem antes de iniciar o processo de commit.

  • sistema.* coleções não são replicadas.

  • Documentos com nomes de campo prefixados em dólar ($) não são aceitos. Consulte Nomes de campos com pontos e cifrões.

  • Clusters sem servidor não são suportados.

  • Uma camada compartilhada MongoDB não é suportada.

  • Não há suporte Queryable Encryption.

  • Não é possível sincronizar uma coleção que tenha um índice exclusivo e um índice não exclusivo definidos no(s) mesmo(s) campo(s).

  • Antes de tentar executar o mongosync com um cluster do Atlas M10+, desabilite a opção Require Indexes for All Queries.

  • mongosync não sincroniza usuários ou roles.

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

  • mongosync deve ler a partir do cluster de origem usando a preferência de leitura primary .

  • mongosync não oferece suporte a clusters de origem ou destino que estejam atualizando versões do MongoDB no momento.

  • mongosync não suporta a sincronização de índices do Atlas Search.

  • mongosync suporta apenas clusters que utilizam o mecanismo de armazenamento WiredTiger .

  • Não é possível sincronizar uma coleção com documentos que tenham um carimbo de data/hora vazio, como Timestamp(0,0) na pré-6.0 clusters de origem.

O MongoDB não testa o Mongosync com compilações da Comunidade e, na maioria dos casos, o MongoDB não oferece suporte para o Mongosync com sistemas da Comunidade. Se você quiser usar o Mongosync com o MongoDB Community Edition, entre em contato com um representante de vendas do MongoDB para discutir requisitos e opções individualizadas.

  • Coleções de séries temporais não são suportadas.

  • Não há suporte para coleções clusterizadas com a definição expireAfterSeconds.

  • mongosync não suporta sincronização de um cluster fragmentado para um conjunto de réplicas.

  • mongosync não suporta sincronização com uma topologia de cluster fragmentado com um ou mais árbitros.

  • mongosync não suporta sincronização de ou para clusters globais.

  • Se o cluster estiver executando o MongoDB 6.0 ou anterior, execute o comando cleanupOrphaned para limpar documentos órfãos.

  • A sincronização de um conjunto de réplicas para um cluster fragmentado tem as seguintes limitações:

    • mongosync permite aos usuários renomear coleções que a opção sharding.shardingEntries inclui durante a sincronização com algumas limitações. Para obter detalhes, consulte Renomeando durante a sincronização.

    • Se você usar a opção sharding.createSupportingIndexes , os índices serão criados automaticamente no cluster de destino durante a sincronização. Você não poderá criar esses índices posteriormente no cluster de origem.

    • Se você quiser criar um índice para suportar chaves de shard manualmente, deverá criar o índice antes que o mongosync inicie ou depois que a migração for concluída e o mongosync for interrompido.

  • Dentro de uma coleção, o campo _id deve ser único em todos os fragmentos no cluster. Consulte Clusters fragmentados e índices exclusivos para obter mais detalhes.

  • O comando movePrimary não pode ser utilizado para reatribuir o fragmento primário durante a sincronização.

  • Não há replicação para configuração de zona. mongosync replica dados, não herda zonas.

  • Não é possível adicionar ou remover compartilhamentos durante a sincronização.

  • mongosync sincroniza apenas índices que existem em todos os shards.

  • mongosync sincroniza apenas índices que têm especificações de índice consistentes em todos os shards.

    Observação

    Para verificar se há inconsistências de índices, consulte Localizar índices inconsistentes entre fragmentos.

  • Você deve parar o balanceador em clusters de origem e destino fragmentados durante toda a vida útil de uma migração. Para parar o balancer, execute o comando balancerStop e aguarde a conclusão do comando.

    Observação

    Depois de parar o balanceador, espere 15 minutos antes de iniciar o mongosync. Isso dá ao cluster tempo para concluir qualquer migração de parte em andamento.

  • Você não deve executar os comandos moveChunk e moveRange nos clusters de origem ou destino.

  • A tecla de fragmento não pode ser refinada durante a sincronização.

  • As operações reshardCollection do cluster de origem não são suportadas durante a sincronização.

  • O número máximo de índices por coleção fragmentada é 63, um a menos do que o limite padrão de 64.

  • mongosync só oferece suporte à sincronização de coleções fragmentadas que tenham configurações de agrupamento padrão.

  • Se a fonte antiga tiver índices exclusivos parcialmente distribuídos entre os fragmentos, a reversão poderá causar falhas. Certifique-se de que existem índices únicos em todos os fragmentos antes de reverter.

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

  • Para reverter a direção, mongosync exige que todos os índices únicos no cluster de origem (exceto _id) não tenham chaves de índice único legado.

  • mongosync não oferece suporte à sincronização de vários clusters de origem em um cluster de destino.

  • Um cluster não pode ser ao mesmo tempo um cluster de origem em uma instância mongosync e um cluster de destino em outra instância mongosync.

  • A filtragem não é compatível com a sincronização reversível.

  • O cluster de destino não deve conter dados de usuários antes de iniciar.

  • O cluster de destino não deve conter o banco de dados do sistema mongosync_reserved_for_internal_use antes de iniciar.

  • Não é possível modificar um filtro em uso. Para criar um novo filtro, consulte Como substituir um filtro existente.

  • Você só pode renomear coleções em determinadas situações. Para obter mais detalhes, consulte: Adicionar e renomear coleções.

  • Se um filtro incluir um modo de exibição, mas não a coleção base, somente os metadados do modo de exibição serão sincronizados com o cluster de destino. Para incluir os documentos de visualização, você também deve sincronizar a coleção base.

  • Não é possível especificar coleções do sistema ou bancos de dados do sistema em um filtro.

  • Para utilizar o estágio de agregação $out ou o comando mapReduce (quando definido para criar ou substituir uma coleção) com filtragem, você deve configurar o filtro para utilizar o banco de dados inteiro. Você não pode limitar o filtro às coleções dentro do banco de dados.

    Para obter mais informações, consulte Filtragem com mapReduce e $out.

A partir de 1.3.0, O Mongosync suporta capped collections com algumas limitações.

As coleções limitadas no cluster de origem funcionam normalmente durante a sincronização.

As coleções limitadas no cluster de destino apresentam alterações temporárias durante a sincronização:

  • Não há nenhum número máximo de documentos.

  • O tamanho máximo da coleção é 1PB.

mongosync restaura os valores originais para o número máximo de documentos e o tamanho máximo do documento durante o commit.

O Mongosync não replica coleções de sistemas para o cluster de destino.

Se você emitir um comando dropDatabase no cluster de origem, esta alteração não será diretamente aplicada no agrupamento de destino. Em vez disso, o Mongosync descarta coleções e exibições de usuários no banco de dados no cluster de destino, mas não descarta coleções do sistema nesse banco de dados.

Por exemplo, no cluster de destino:

  • A operação de descarte não afeta uma coleção do system.js criada pelo usuário.

  • Se você habilitar o perfil, a coleção system.profile permanecerá.

  • Se você criar exibições no cluster de origem e depois descartar o banco de dados, a replicação do descarte removerá as exibições, mas descartará uma coleção system.views vazia.

Nesses casos, a replicação do dropDatabase remove todas as coleções criadas pelo usuário do banco de dados, mas deixa suas coleções do sistema no cluster de destino.

mongosync não oferece suporte a compilações de índice contínuo durante a migração. Para evitar a criação de índices de forma contínua durante a migração, use um dos métodos a seguir para garantir que seus índices de destino correspondam aos índices de origem:

  • Construa o índice na origem antes da migração.

  • Construa o índice na origem durante a migração com uma construção de índice padrão.

  • Construa o índice no destino após a migração.

A partir de 1.9, mongosync pode usar um verificador incorporado para confirmar a sincronização bem-sucedida de coleções do cluster de origem para o cluster de destino.

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.

Voltar

Inverter direção de sincronização

Nesta página