This page outlines the procedure to synchronize data from a replica set to a sharded cluster using mongosync.
Observação
mongosync não suporta sincronização de um cluster fragmentado para um conjunto de réplicas.
Antes de começar
Defina seu conjunto de réplicas de origem e cluster fragmentado de destino .
Defina um usuário administrativo que tenha permissões em ambos os clusters.
Baixar e instalar
mongosync.
Para saber mais, consulte as instruções de configuração do mongosync .
Passos
Conecte o conjunto de réplicas e o cluster fragmentado
mongosync deve criar uma conexão inicial entre o conjunto de réplicas de origem e o cluster fragmentado de destino antes de começar a sincronizar dados.
Para conectar cluster0 a cluster1 com mongosync, digite o seguinte comando:
mongosync \ --cluster0 "<cluster0_connection_string>" \ --cluster1 "<cluster1_connection_string>"
Follow the connection instructions for your cluster architecture to format your connection strings and connect to the mongos instance in your cluster.
Iniciar sincronização
Chame o endpoint inicial para iniciar a sincronização de dados.
Para sincronizar de um conjunto de réplicas para um cluster fragmentado, defina a opção sharding para o comando start para fragmentar coleções no cluster de destino. Para obter mais informações, consulte Parâmetros de fragmentação.
Utilize o parâmetro sharding.shardingEntries para especificar as coleções para fragmentar. As coleções que você não lista nesta array replicam como não fragmentadas. Para obter mais informações, consulte Conjuntos de réplicas de shard e Escolher uma chave de shard.
O exemplo a seguir inicia uma sincronização a partir de um conjunto de réplicas com um cluster fragmentado:
Solicitar
curl localhost:27182/api/v1/start -XPOST \ --data ' { "source": "cluster0", "destination": "cluster1", "sharding": { "createSupportingIndexes": true, "shardingEntries": [ { "database": "accounts", "collection": "us_east", "shardCollection": { "key": [ { "location": 1 }, { "region": 1 } ] } } ] } } '
Resposta
{"success":true}
Próximos passos
Você pode finalizar uma migração e transferir o volume de trabalho do seu aplicação do cluster de origem para o de destino usando o processo de cutoverdo mongosync .
Limitações
- Você não pode usar o endpoint inverso entre um conjunto de réplicas e um cluster fragmentado.
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.
- Se o conjunto de réplicas de origem tiver árbitros, o conjunto de réplicas de origem deverá ter mais de 2 nós não árbitros e você deverá sincronizar a partir de um nó não árbitro.
For more details, see mongosync Migration Limitations.