mongosync e instruções sobre como atualizar sua versã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.
Limitações gerais
Observação
Para obter informações sobre a compatibilidade do servidor MongoDB, consulte Compatibilidade e suporte da versão do MongoDB Server.
O cluster de destino deve estar vazio.
mongosyncnão valida se os clusters ou o ambiente estão configurados corretamente.Outros clientes não devem gravar no cluster de destino enquanto o
mongosyncestiver em execução.Se o bloqueio de gravação estiver desabilitado, o cliente deverá evitar gravações no cluster de origem antes de iniciar o processo de cometimento.
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
mongosynccom um cluster do AtlasM10+, desabilite a opção Require Indexes for All Queries.mongosyncnão sincroniza usuários ou roles.mongosyncnão replica operaçõesapplyOpsfeitas no cluster de origem durante a sincronização com o cluster de destino.mongosyncdeve ler a partir do cluster de origem usando a preferência de leituraprimary.mongosyncnão suporta a sincronização de índices do Atlas Search.mongosyncsuporta apenas clusters que utilizam o mecanismo de armazenamento WiredTiger .Não é possível sincronizar uma coleção com documentos que contenham um campo de data e hora vazio, tal como
Timestamp(0,0).
MongoDB Community Edition
O MongoDB não testa a Cluster-to-Cluster Sync com compilações da Community e, na maioria dos casos, o MongoDB não oferece suporte para a Cluster-to-Cluster Sync com sistemas da Community. Se você quiser usar o Cluster-to-Cluster Sync com o MongoDB Community Edition, entre em contato com um representante de vendas do MongoDB para discutir requisitos e opções individualizadas.
Tipos de coleção não suportados
Coleções de séries temporais não são suportadas.
Não há suporte para coleções clusterizadas com a definição expireAfterSeconds.
Clusters fragmentados
mongosyncnão suporta sincronização de um cluster fragmentado para um conjunto de réplicas.mongosyncnão suporta sincronização com uma topologia de cluster fragmentado com um ou mais árbitros.mongosyncnã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:
mongosyncpermite aos usuários renomear coleções que a opçãosharding.shardingEntriesinclui 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
mongosyncinicie ou depois que a migração for concluída e omongosyncfor interrompido.
Dentro de uma coleção, o campo
_iddeve ser único em todos os fragmentos no cluster. Consulte Clusters fragmentados e índices exclusivos para obter mais detalhes.O comando
movePrimarynão pode ser utilizado para reatribuir o fragmento primário durante a sincronização.Não há replicação para configuração de zona.
mongosyncreplica dados, não herda zonas.Não é possível adicionar ou remover compartilhamentos durante a sincronização.
mongosyncsincroniza apenas índices que existem em todos os shards.mongosyncsincroniza 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
balancerStope 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
moveChunkemoveRangenos clusters de origem ou destino.A tecla de fragmento não pode ser refinada durante a sincronização.
A chave de fragmento não pode ser modificada usando
reshardCollectiondurante 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.
mongosyncsó oferece suporte à sincronização de coleções fragmentadas que tenham configurações de agrupamento padrão.
Reversã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.
Vários clusters
mongosyncnã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
mongosynce um cluster de destino em outra instânciamongosync.
Sincronização filtrada
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_useantes 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
$outou o comandomapReduce(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.
Capped collections
A partir de 1.3.0, O Cluster-to-Cluster Sync oferece suporte a coleções limitadas com algumas limitações.
convertToCappednão é compatível. Se você executarconvertToCapped,mongosyncserá encerrado com um erro.cloneCollectionAsCappednão é suportado.
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.
Coleções do sistema
O Cluster-to-Cluster Sync não replica coleções de sistemas para o cluster de destino.
Se você emitir um comando dropDatabase no cluster de origem, essa alteração não será diretamente aplicada no cluster de destino. Em vez disso, o Cluster-to-Cluster Sync descarta coleções e visualizações de usuários no banco de dados no cluster de destino, mas não descarta as 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.jscriada pelo usuário.Se você habilitar o perfil, a coleção
system.profilepermanecerá.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.viewsvazia.
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.
Construção contínua de índices
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.