Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Limitações de Migração do mongosync

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 compatibilidade do servidor MongoDB , consulte Compatibilidade da versão do MongoDB Server .

  • mongosync does not support in-place server version upgrades or downgrades that change the major or minor version during a migration. mongosync does allow patch version upgrades. To learn more, see the server upgrade instructions.

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

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

  • Before you attempt to run mongosync with an M10+ Atlas cluster, disable the Require Indexes for All Queries option to set notablescan to false on both the source and destination clusters.

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

  • mongosync does not replicate applyOps operations made on the source cluster during sync to the destination cluster.

  • mongosync must read from the source cluster using the primary read preference.

  • mongosync não oferece suporte a clusters de origem ou destino que estejam atualizando ou fazendo downgrade das 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.

  • mongosync não suporta documentos com nomes de campo duplicados. Para obter detalhes, consulte O MongoDB não suporta nomes de campo duplicados.

  • mongosync não oferece suporte à migração de um namespace para um cluster de destino que já contenha um namespace conflitante.

  • mongosync não oferece suporte a clusters de destino sem usuários provisionados.

  • Em todas as versões do MongoDB anteriores a 8.0.20, se uma operação replace adicionar um campo chamado $v a um documento , mongosync será encerrado com um erro fatal irrecuperável durante a alteração do aplicação de evento . Ao retomar a sincronização sempre falha com o mesmo erro.

    Para resolver esse problema, reinicie a sincronização do zero, excluindo o banco de dados de metadados do mongosync no destino ou atualize o cluster de origem para 8.0.20+.

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 agrupadas com a definição expireAfterSeconds.

Novidades na versão 1.22.

Antes de iniciar uma migração, o mongosync verifica o espaço em disco disponível no cluster de destino. mongosync estima o tamanho no disco das collections e índices de origem que você selecionou para migração e, em seguida, compara essa estimativa com o espaço disponível no sistema de arquivos de destino. mongosync aplica um fator de segurança 1.25x à estimativa para levar em conta as diferenças de compactação do mecanismo de armazenamento, o espaço temporário que o índice cria e o crescimento do oplog durante a migração.

If the estimated space required exceeds the space available, /start returns an InsufficientDestinationDiskSpace error, and mongosync does not start the migration. To resolve the error, free disk space on the destination cluster and call /start again.

mongosync ignora a verificação para destinos onde não pode recuperar estatísticas do sistema de arquivos.

Importante

This check is a best-effort guardrail. It does not guarantee that the migration fits on the destination cluster. Changes that occur during the migration and differences in how mongosync distributes disk space across destination shards both affect the estimate.

To disable the check, set skipDiskSpaceCheck to true in the /start request. Use this option when the destination filesystem statistics do not accurately represent the storage available to the migration. To learn more, see Request Body Parameters.

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

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

  • The movePrimary command cannot be used to reassign the primary shard while syncing.

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

  • Se o mongosync detectar especificações de índice inconsistentes em fragmentos, ele sairá com um erro fatal. Ao verificar inconsistências, mongosync ignora os campos de índice ns e background.

    Observação

    To check for index inconsistencies, see Find Inconsistent Indexes Across Shards. This method surfaces ns and background field differences, which mongosync ignores when checking for inconsistencies.

  • Se o cluster de origem ou destino for um cluster fragmentado e você não estiver executando mongosync o com filtragem de namespace, será necessário desabilitar o balanceador do cluster de origem executando o balancerStop comando e aguardando 15 minutos para que o comando seja concluído.

    Se o cluster de origem ou destino for um cluster fragmentado e você estiver executando mongosync com filtragem de namespace , poderá habilitar globalmente o balanceador do cluster de origem, mas deverá desativá-lo para todas as collections dentro do filtro de namespace . Consulte Desativar o Balanceador para Coleções na Sincronização Filtrada. Você também pode desabilitar totalmente o balanceador do cluster de origem.

    You must always disable the balancer on a sharded destination cluster by using balancerStop.

  • If you have enabled the source cluster's balancer, but disabled it for collections within the namespace filter, do not run shardCollection on collections within the namespace filter. If you run shardCollection on collections within the namespace filter during the migration, mongosync returns an error and stops, which requires you to start the migration from scratch.

  • mongosync doesn't support running the command transitionFromDedicatedConfigServer during execution.

  • You must not run the moveChunk and moveRange commands on the source or destination clusters.

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

  • The reshardCollection operations from the source cluster are not supported during sync.

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

  • mongosync não oferece suporte a coleções com um agrupamento não padrão em clusters fragmentados. Isso se aplica a collections fragmentadas e não fragmentadas.

  • mongosync erros em índices inconsistentes ou ausentes em alguns fragmentos portadores de dados.

  • mongosync falhará se houver uma janela de balanceamento configurada no cluster de origem ou destino.

  • mongosync não suporta a migração para namespaces de destino com tags de zona de shard pré-configuradas. Antes de iniciar uma migração, remova todos os intervalos de tags de fragmento, ou zonas, de qualquer namespace para o qual o mongosync migrará no destino. Você pode adicionar novamente os intervalos de zona desejados depois que a migração atingir o estado COMMITTED.

  • Se a fonte antiga tiver índices exclusivos parcialmente distribuídos entre os shards, a reversão poderá causar falhas. Certifique-se de que existem índices únicos em todos os shards antes de reverter.
  • Os clusters de origem e destino devem ter o mesmo número de fragmentos. Não é possível fazer a sincronização reversa quando os clusters têm topologias diferentes.

  • Os clusters de origem e destino devem executar a mesma versão principal do MongoDB .

  • To reverse direction, mongosync requires that all unique indexes on the source cluster (except for _id) do not have legacy unique index keys.
  • 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 do usuário antes de iniciar, a menos que você defina o parâmetro preExistingDestinationData como true ao chamar /start.

  • O cluster de destino não deve conter o banco de dados do sistema __mdb_internal_mongosync 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.

  • To use the $out aggregation stage or the mapReduce command (when set to create or replace a collection) with filtering, you must configure the filter to use the entire database. You cannot limit the filter to collections within the database.

    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.

A partir de 1.20.0, você deve passar o sinalizador --enableCappedCollectionHandling ao iniciar o mongosync para permitir a criação de novas coleções limitadas durante uma migração.

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.

If you issue a dropDatabase command on the source cluster, this change is not directly applied on the destination cluster. Instead, Mongosync drops user collections and views in the database on the destination cluster, but it does not drop system collections on that database.

Por exemplo, no cluster de destino:

  • The drop operation does not affect a user-created system.js collection.

  • If you enable profiling, the system.profile collection remains.

  • If you create views on the source cluster and then drop the database, replicating the drop removes the views, but leaves an empty system.views collection.

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.

When buildIndexes is set to "afterDataCopy", mongosync might fail to apply Rename DDL events. If this occurs, restart the migration from scratch with buildIndexes set to "beforeDataCopy" or "never". Setting buildIndexes to beforeDataCopy can increase the migration time, and setting buildIndexes to never requires you to build indexes manually after the migration completes.

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:

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

  • Ao migrar de um conjunto de réplicas para um cluster fragmentado, não é possível renomear as coleções de origem especificadas nas opções de fragmentação. Se você renomear uma collection incluída nas opções de fragmentação durante a fase de ECA, o verificador relatará uma incompatibilidade de fragmentaçã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.

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

Para verificar coleções não suportadas, adicione código de script adicional para examinar as coleções. 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 no cluster de origem pré-.6 0 durante a migração. Isso ocorre porque6 0 as migrações pré-. não são compatíveis com eventos DDL.

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

mongosync não migra as Configurações de query persistente (PQS), que foram introduzidas no MongoDB 8.0. Se o cluster de origem usa PQS, você deve migrá-los manualmente.

A partir de 1.10, o mongosync suporta migrações de clusters de origem que executam versões do servidor MongoDB anteriores a 6.0. Para obter informações sobre os caminhos de migração suportados, consulte Compatibilidade da versão do MongoDB Server .

As seguintes limitações se aplicam ao pré-6.0 migrações:

  • The source cluster cannot have orphaned documents. To clean up any orphaned documents, run the cleanupOrphaned command on the mongod instances on every shard's primary node on their source cluster. Wait for this command to complete with a status {ok:1} before starting the migration.

  • As gravações que produzem eventos DDL não podem ocorrer no cluster de origem durante a migração. Os seguintes eventos não podem ocorrer:

    • collMod

    • create

    • createIndexes

    • drop

    • dropDatabase

    • dropIndexes

    • refineCollectionShardKey

    • rename

    • reshardCollection

    • shardCollection

    This includes operations that may create new collections such as mapReduce, $out, and $merge. This also includes collections created implicitly from inserts. Only writes that produce CRUD events can occur during the migration.

    Observação

    As gravações que produzem eventos DDL em coleções de origem fora do filtro de namespace são permitidas.

  • geoHaystack índices não são suportados.

  • O endpoint/reverse não é suportado. Você não pode habilitar a reversible opção na solicitação /start.

  • Certifique-se de que nenhuma gravação seja feita no cluster de origem depois de chamar o ponto de extremidade /commit.

  • Você não pode habilitar o createSupportingIndexes parâmetro de fragmentação . Em vez disso, crie um índice para dar suporte à sua chave de shard no cluster de origem.

  • Se houver índices com especificações inconsistentes ou ausentes em um ou mais fragmentos, mongosync retornará um erro. Para verificar inconsistências de índice, consulte Localizar índices inconsistentes em shards.