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

  • system.* collections aren't replicated.

  • Documents that have dollar ($) prefixed field names aren't supported. See Field Names with Periods and Dollar Signs.

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

  • Uma camada compartilhada MongoDB não é suportada.

  • Clusters Atlas Infinite não são suportados.

  • Queryable Encryption isn't supported.

  • 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 de destino que estão atualmente atualizando ou fazendo downgrade de versões do MongoDB.

  • 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 does not support documents with duplicate field names. For details, see MongoDB does not support duplicate field names.

  • 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 sai com um erro fatal irrecuperável durante a aplicação do evento de alteração. 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 que mongosync inicie uma migração, ele verifica o espaço em disco disponível no cluster de destino. mongosync estima o tamanho em disco das coleções 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 de 1.25x na estimativa para levar em conta as diferenças de compactação do mecanismo de armazenamento, o espaço temporário que as construções de índice usam e o crescimento do oplog durante a migração.

Se o espaço estimado necessário exceder o espaço disponível, /start retorna um erro InsufficientDestinationDiskSpace, e mongosync não inicia a migração. Para resolver o erro, libere espaço em disco no cluster de destino e chame /start novamente.

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

Importante

Esta verificação é uma salvaguarda de melhor esforço. Não garante que a migração caiba no cluster de destino. Alterações que ocorrem durante a migração e diferenças na forma como mongosync distribui o espaço em disco entre os shard de destino afetam a estimativa.

Para desativar a verificação, defina skipDiskSpaceCheck como true na solicitação /start. Use esta opção quando as estatísticas do sistema de arquivos de destino não representarem com precisão o armazenamento disponível para a migração. Para aprender mais, consulte Parâmetros do corpo da solicitação.

  • 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 doesn't support sync to or from global clusters.

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

  • If the source or destination cluster is a sharded cluster and you are not running mongosync with namespace filtering, you must disable the source cluster's balancer by running the balancerStop command and waiting 15 minutes for the command to complete.

    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.

  • The shard key cannot be refined while syncing.

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

  • The maximum number of indexes per sharded collection is 63, which is one less than the default limit of 64.

  • 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 fails if there is a balancing window configured on the source or destination cluster.

  • 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 você não chamar o ponto de extremidade /commit para finalizar a sincronização reversa, o cluster de origem original permanecerá em um estado intermediário e inutilizável.

  • 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 does not support rolling index builds during migration. To avoid building indexes in a rolling fashion during migration, use one of the following methods to ensure that your destination indexes match your source indexes:

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

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

Starting in version 1.10, the verifier checks for data inconsistencies from a DDL event that occurred on the pre-6.0 source cluster during migration. This is because pre-6.0 migrations do not support DDL events.

To learn more, see Pre-6.0 Migration Limitations.

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.

  • If there are any indexes with inconsistent specs or that are missing on one or more shards, mongosync returns an error. To check for index inconsistencies, see Find Inconsistent Indexes Across Shards.